Laiko analizė yra viena dažniausių Power BI ataskaitų temų. Beveik kiekvienoje analizėje norime žinoti, kaip sekėsi šį mėnesį, kaip rezultatas atrodo nuo metų pradžios arba kaip šis laikotarpis palyginamas su praėjusiais metais.
Tokiems klausimams spręsti DAX turi specialias Time Intelligence funkcijas. Jos leidžia dirbti su laikotarpiais daug patogiau nei rankiniu būdu filtruojant datas.
Jei dar tik pradedi mokytis DAX, pirmiausia verta perskaityti: įvadą į DAX ir pagrindinius Power BI skaičiavimo principus .
Kas yra Time Intelligence?
Time Intelligence – tai DAX funkcijų grupė, skirta laiko analizei. Jos leidžia skaičiuoti rezultatus pagal laikotarpius: nuo metų pradžios, per praėjusį laikotarpį, per paskutinius kelis mėnesius ir panašiai.
Pavyzdžiui, su Time Intelligence galima atsakyti į klausimus:
- kokie pardavimai nuo metų pradžios?
- kiek pardavėme tuo pačiu laikotarpiu pernai?
- kaip atrodo paskutinių 3 mėnesių rezultatas?
- ar šis mėnuo geresnis nei praėjęs?
Kodėl būtina Date table?
Time Intelligence funkcijos veikia tik tada, kai modelyje yra teisingai sukurta kalendoriaus lentelė – Date table.
Tokia lentelė turi turėti:
- vieną datų stulpelį be tarpų datų sekoje;
- unikalias datas;
- ryšį su faktine duomenų lentele;
- teisingai nustatytą datos tipą;
- pažymėjimą kaip Date Table Power BI modelyje.
Jei Date table netvarkinga arba nesusieta su faktine lentele, Time Intelligence formulės gali grąžinti neteisingus rezultatus arba neveikti taip, kaip tikiesi.
Periodų sumavimas: YTD, MTD, QTD
Vienos dažniausių Time Intelligence funkcijų yra tos, kurios sumuoja rezultatą nuo laikotarpio pradžios iki pasirinktos datos.
- DATESYTD – skaičiuoja nuo metų pradžios;
- DATESMTD – skaičiuoja nuo mėnesio pradžios;
- DATESQTD – skaičiuoja nuo ketvirčio pradžios.
Pavyzdžiui, pardavimų nuo metų pradžios formulė gali atrodyti taip:
Pardavimai YTD :=
CALCULATE(
SUM(Pardavimai[Suma]),
DATESYTD(Kalendorius[Data])
)
Šiuo atveju CALCULATE pakeičia filtrų kontekstą taip, kad skaičiavimas apimtų visas datas nuo metų pradžios iki pasirinktos datos.
Jei nori geriau suprasti, kodėl tai veikia būtent taip, verta skaityti: kaip DAX mato duomenis: Row vs Filter context .
Palyginimai su ankstesniais laikotarpiais
Kita dažna Time Intelligence užduotis – palyginti dabartinį laikotarpį su ankstesniu.
Tam dažnai naudojamos šios funkcijos:
- SAMEPERIODLASTYEAR – grąžina tą patį laikotarpį praėjusiais metais;
- DATEADD – leidžia paslinkti datas nurodytu intervalu;
- PARALLELPERIOD – grąžina panašų laikotarpį ankstesniame arba vėlesniame periode.
Pavyzdžiui, pardavimų pernai formulė:
Pardavimai pernai :=
CALCULATE(
SUM(Pardavimai[Suma]),
SAMEPERIODLASTYEAR(Kalendorius[Data])
)
Tokia formulė leidžia lyginti šių metų rezultatus su praėjusių metų rezultatais tame pačiame laikotarpyje.
Judantys laikotarpiai
Kartais norime žiūrėti ne į kalendorinius metus ar mėnesius, o į judantį laikotarpį, pavyzdžiui, paskutinius 3 mėnesius.
Tam dažnai naudojama funkcija DATESINPERIOD.
Pardavimai 3 mėn. :=
CALCULATE(
SUM(Pardavimai[Suma]),
DATESINPERIOD(
Kalendorius[Data],
MAX(Kalendorius[Data]),
-3,
MONTH
)
)
Ši formulė apskaičiuoja pardavimus per paskutinius 3 mėnesius nuo pasirinktos datos.
Kadangi tokie skaičiavimai priklauso nuo filtrų konteksto, kartais prireikia geriau suprasti, kaip DAX valdo filtrus. Plačiau apie tai: ALL, REMOVEFILTERS ir KEEPFILTERS funkcijų logika .
Dažniausios klaidos
Time Intelligence formulės dažnai neveikia ne dėl pačios formulės, o dėl modelio struktūros.
- modelyje nėra Date table;
- Date table nėra pažymėta kaip Date Table;
- datos saugomos kaip tekstas;
- kalendoriaus lentelėje trūksta datų;
- nėra ryšio tarp Date table ir faktinės lentelės;
- naudojamas netinkamas datos stulpelis formulėje.
Kur tai naudoti praktiškai?
Time Intelligence dažniausiai naudojama KPI kortelėse, trendų grafikuose, mėnesiniuose palyginimuose ir vadovų ataskaitose.
Pavyzdžiui, galima skaičiuoti:
- pardavimus nuo metų pradžios;
- pokytį lyginant su praėjusiais metais;
- paskutinių 3 mėnesių vidurkį;
- einamojo mėnesio rezultatą;
- procentinį augimą per laiką.
Jei kuri KPI rodiklius Power BI ataskaitoje, tau pravers ir šis straipsnis: kaip kurti ir skaičiuoti KPI rodiklius su DAX .
Ką skaityti toliau
Išvada
Time Intelligence funkcijos leidžia Power BI ataskaitose atlikti laiko analizę: skaičiuoti YTD, lyginti su praėjusiais metais, analizuoti judančius laikotarpius ir matyti tendencijas.
Tačiau svarbiausia suprasti, kad šios funkcijos veikia tik tada, kai modelyje yra tvarkinga Date table, teisingi ryšiai ir datos saugomos tinkamu formatu.
Kai ši bazė sutvarkyta, Time Intelligence tampa vienu galingiausių DAX įrankių Power BI analizėje.
Power Query atmintinė: automatizuok ataskaitą
Pagrindiniai žingsniai, 5 dažnos klaidos ir kada verta automatizuoti ataskaitą.
- PDF · 2 psl., praktiška
- Be spam'o — tik nauda
