Time Intelligence DAX funkcije

DAX poseduje mnoštvo funkcija za rad sa datumom i vremenom koje se ne razlikuju puno od onih koje uobičajeno koristimo. Time Intelligence funkcije, sa druge strane, predstavljaju posebnu grupu DAX funkcija koje omogućavaju proračune u skladu sa vremenskim periodima: godinama, kvartalima, mesecima i danima. Ovi periodi se koriste kao filteri koji omogućavaju dolaženje do rezultata koje bi smo teško dobili primenom tradicionalnih metoda.

Pre nego što pokažemo nekoliko jednostavnih Time Intelligence funkcija treba napomenuti da njih ne možemo da koristimo bez „Kalendar“ tabele. Odnosno, za izradu ovakvih izveštaja moramo da imamo minimalno dve tabele: prvu, sa podacima, kao i drugu, sa svim datumima koji se pojavljuju u obuhvaćenom vremenskom periodu. U ranijim verzijama bilo je potrebno ovakvu tabelu napraviti ručno, a zatim je dodati u Model podataka. Excel 2016 omogućava automatsko pravljenje „Kalendar“ tabele.

Ponovo ćemo iskoristiti analizu poslovanja lanca maloprodaja. Dodali smo u Model tri tabele: Artikli, Lokacije i Transakcije. Tabelu sa datumima kreiramo tako što najpre odemo u Design traku alata Modela podataka, otvorimo meni Date Table i izaberemo opciju New.00147-1

Automatski će se generisati nova tabela sa nazivom Calendar. Sada samo još treba povezati kolonu DATE u ovoj tabeli sa odgovarajućim datumskim poljem u tabeli Transakcije. U našem slučaju, to je polje DATUM.

00147-2

Ako se iz Diagram pogleda prebacimo na Grid pogled moći ćemo da vidimo kolone sa podacima koje je Excel automatski generisao. Kao što sam već napomenuo, tabelu „Kalendar“ mogli smo da dodamo i ručno. U tom slučaju samo je potrebno da se pozicioniramo na nju, pa da iz Design trake alata, u istoimenom meniju, izaberemo opciju Mark as Date Table.

00147-3

Time Intelligence funkcije se obično koriste u kombinaciji sa funkcijom CALCULATE. Sada ćemo da demonstriramo jednu jednostavnu funkciju koja ima za cilj filtriranje agregiranih podataka u periodu između dva datuma. Funkcija se zove DATESBETWEEN, a njena sintaksa je:

DATESBETWEEN(<datumska kolona>,<početni datum><krajnji datum>)

Ako želimo da izračunamo sumu prodatih količina u 2015. godini iskoristićemo funkcije CALCULATE i DATESBETWEEN da kreiramo meru:

Prodaja2015:=
CALCULATE(SUM(Transakcije[KOL]),DATESBETWEEN(‘Calendar'[Date],”1/1/2015″,”31/12/2015″))

Ako sada napravimo Pivot tabelu, pa u polje Rows prevučemo kolonu KLASIFIKACIJA, a u polje Values SUM of KOL i meru Prodaja2015 dobićemo izveštaj sa dve kolone, gde se u prvoj vidi ukupna prodaja a u drugoj samo prodaja u 2015. godini, odnosno između dva zadata datuma.

00147-4

DAX poseduje još jednu sličnu funkciju koja se zove DATESINPERIOD. Ona računa izraze u određenom broju intervala u odnosu na zadati datum. Njena sintaksa je:

DATESINPERIOD (<datumska kolona>,<datum>,<broj perioda>,<oznaka perioda>)