Time Intelligence funkcije u Excel-u
Informacioni sistem treba pre svega da nam pruža informacije, da nam ukaže gde se nalazimo u vremenu i prostoru. Excel ima niz funkcija za rad s datumom i vremenom, a DAX nudi i nešto više…
Time Intelligence funkcije se uglavnom koriste kao filteri, u kombinaciji sa funkcijom CALCULATE, i omogućavaju proračune u skladu sa zadatim periodom. Pre nego što počnemo priču o ovim funkcijama treba napomenuti da njih ne možemo da koristimo bez tabele Kalendar. Za izradu ovakvih izveštaja moramo da imamo u Modelu podataka minimalno dve tabele: prvu s podacima i drugu sa svim datumima koji se pojavljuju u obuhvaćenom periodu. Podaci mogu da označavaju spisak transakcija, ali je u praksi to najčešće tabela generisana na osnovu odgovarajućeg SQL upita koja je iz baze povukla sve potrebne podatke za izveštavanje.
Tabelu Kalendar možemo da napravimo „ručno“, pa da je povežemo s podacima pomoću ključa (datumsko polje). „Ručno“ znači sledeće: napravite tabelu s najmanje jednom kolonom koja sadrži sve datume u periodu u kome se odvijaju transakcije, a zatim je dodajte u Model podataka. Excel 2016 omogućava i automatsko generisanje datumske tabele. Da bismo ovo postigli, potrebno je da u PowerPivot prozoru odemo na traku alata Design, pa da u okviru menija Date table izaberemo opciju New.
Jednostavne funkcije
Kada smo povezali tabele u modelu, nastavljamo s kreiranjem mera. U tu svrhu, sledi prikaz nekoliko jednostavnih Time Intelligence funkcija. Za praćenje prometa obično treba da kreiramo meru koja vrši sumu svih količina ili iznosa u tabeli na osnovu koje pravimo izveštaj (Transakcije). Za sumu iznosa, u konkretnom slučaju, to bi bila mera:
Promet:=SUMX(Transakcije; Transakcije[KOL] *
RELATED (Artikli
[P‑CENA]))
Za praćenje prometa u prethodnim i narednim periodima iskoristićemo Previous i Next Time Intelligence funkcije. Sve ove funkcije imaju sličnu sintaksu, ali obuhvataju različite periode. Uvek imaju samo jedan argument, a to je datumska kolona u tabeli Kalendar. Na primer, za praćenje prometa u prethodnim danima, mesecima, kvartalima ili godinama koristimo funkcije PREVIOUSDAY (<datum-kolona>), PREVIOUSMONTH (<datum-kolona>), PREVIOUSQUARTER (<datum- kolona>) o PREVIOUSYEAR (<datum-kolona>).
Za praćenje prometa u narednim danima, mesecima, kvartalima ili godinama iskoristićemo NEXTDAY (<datumska kolona>), NEXTMONTH (<datumska kolona>), NEXTQUARTER (<datumska kolona>) i NEXTYEAR (<datumska kolona>). Na primer, ako želimo da pratimo promet u prethodnom i narednom mesecu u odnosu na trenutno stanje, kreiraćemo dve mere:
PrometPM:=CALCULATE ([Promet]; PREVIOUSMONTH (‘Calendar’[Date]))
Promet_NM:=CALCULATE ([Promet]; NEXTMONTH
(‘Calendar’[Date]))
Kada ove mere, zajedno s merom Promet, ubacimo u PowerPivot, dobićemo sledeći izveštaj.
Kumulativni rast
Često su potrebni izveštaji koji prate kumulativni rast prodaje. U tu svrhu možemo da iskoristimo Time Intelligence funkcije koje omogućavaju praćenje prodaje od početka meseca, kvartala ili godine, a to su: DATESMTD (<datumska kolona>), DATESQTD (<datumska kolona>) i DATESYTD (<datumska kolona>). Ako želimo da pratimo prodaju od početka meseca i od početka godine, primenićemo odgovarajuće funkcije da bismo napravili sledeće mere:
Promet_PocMes:=
CALCULATE([Promet];
DATESMTD(‘Calendar’
[Date])) Promet_PocGod:= CALCULATE([Promet];
DATESYTD(‘Calendar
[Date]))
Kada ove mere, zajedno s merom Promet, dodamo u PowerPivot, dobićemo izveštaj koji pokazuje tekući promet, promet od početka meseca i promet od početka godine. Isti efekat mogli smo da koristimo i primenom sledećih DAX funkcija: TOTALMTD (<izraz>,<datumska kolona>), TOTALQTD (<izraz>,<datumska kolona>) i TOTALYTD (<izraz>,<datumska kolona>). Za razliku od prethodnih funkcija koje se koriste kao filteri funkcije CALCULATE, ove funkcije rade samostalno. Njihova sintaksa je ista kao kod DAX funkcija „iteratora“, a u praksi se tako i ponašaju.
Time Intelligence funkcije se lako koriste i imaju mnogo smisla – da biste postigli isti efekat pomoću tradicionalnog Excel‑a, morali biste da uložite mnogo više znanja, truda i čokolade da vas teši dok stvari idu naopako. Šta mislite, otkud je autor ove rubrike skupio sve kilograme? Sledećeg meseca nastavljamo…
Slavko „Sam Le Chef“ Vujnović