Od početka do kraja…

DAX poseduje mnoštvo Time Intelligence funkcija pa moram da se osvrnem i na one koje prikazuju vrednosti u odnosu na početak i kraj nekog perioda. Moji prijatelji iz konsultantske kuće ASEE bi rekli „Od kolevke pa do groba najlepše je go-go doba“ a ja bih se u ovom tekstu ipak zadržao na kvantifikativnim pokazateljima do kojih se uz pomoć DAX-a lako dolazi (u to se bolje razumem)!

Za primer ponovo uzimamo bazu koja prati promet veleprodaje pića, a sastoji se iz tabela Transakcije, Artikli i Objekti povezanih preko odgovarajućih ključeva. Napravili smo i meru kojom pratimo promet po količinama:

Promet:=SUM(Transakcije[KOL])

Promet na sam dan početka nekog perioda možemo da dobijemo pomoću funkcija:

OPENINGBALANCEMONTH (<izraz>,<datumska kolona>)

OPENINGBALANCEQUARTER (<izraz>,<datumska kolona>)

OPENINGBALANCEYEAR (<izraz>,<datumska kolona>)

Promet na dan kraja perioda dobijamo pomoću funkcija:

CLOSINGBALANCEMONTH (<izraz>,<datumska kolona>)

CLOSINGBALANCEQUARTER (<izraz>,<datumska kolona>)

CLOSINGBALANCEYEAR (<izraz>,<datumska kolona>)

Shodno tome možemo da kreiramo mere:

PrometOBM:=OPENINGBALANCEMONTH([Promet],’Calendar'[Date])

PrometCBM:=CLOSINGBALANCEMONTH([Promet],’Calendar'[Date])

Ako napravimo PowerPivot izveštaj gde ćemo u polje Rows da prevučemo godine i mesece, a u Values mere Promet, PrometOBM i PrometCBM dobićemo Pivot tabelu sledećeg izgleda:

00172-1

U prvoj koloni možete da vidite promet, u drugoj promet prvog dana u mesecu, a u trećoj promet poslednjeg dana u mesecu.

Malopre opisane funkcije rade nezavisno od funkcije CALCULATE. Ako vam trebaju DAX funkcije koje bi ste upotrebili kao filtere razmislite o sledećem rešenju:

STARTOFMONTH (<datumska kolona>)

STARTOFQUARTER (<datumska kolona>)

STARTOFYEAR (<datumska kolona>)

Ili

ENDOFMONTH (<datumska kolona>)

ENDOFQUARTER (<datumska kolona>)

ENDOFYEAR (<datumska kolona>)

Primenom ovih funkcija možemo da kreiramo mere:

PrometSTARTM:=CALCULATE([Promet],STARTOFMONTH(‘Calendar'[Date]))

PrometENDM:=CALCULATE([Promet],ENDOFMONTH(‘Calendar'[Date]))

Ako ih prevučemo u Pivot tabelu dobićemo isti rezultat kao kada smo koristili funkcije koje rade nezavisno od funkcije CALCULATE.

00172-2