DAX promenljive

Kada pišete DAX izraze opšta je preporuka da ne preterujete u njihovoj složenosti. Uvek je bolje kreirati nekoliko mera, pa ih zatim objediniti u okviru nove formule u kojoj se one koriste za izvođenje računskih operacija. Kod je pregledniji, a i puno su manje šanse da dođe do greške. Od skoro DAX omogućava i kreiranje promenljivih. One se koriste za pravljenje mera koje će biti iskorišćene za dolaženje do konačnog rezultata.

Promenljive se kreiraju u okviru mera. Najpre počinjemo sa kreiranjem nove mere, a nakon što navedemo njen naziv pritiskom tastera SHIFT+ENTER prelazimo u novi red. Zatim redom kreiramo promenljive. Svaka promenljiva počinje komandom VAR iza koje navodimo njen naziv, a zatim pišemo DAX izraz koji vrši tražena izračunavanja. Na kraju, navodimo komandu RETURN pa iza nje izraz koji se dodeljuje inicijalnoj meri.

Hajde da vidimo kako ovo radi na jednom jednostavnom primeru. Kreiraćemo meru PR koja vrši izračunavanje procentualnog udela zarade. Pre ovoga, kreirali smo meru Zarada:

Zarada = SUMX(Transakcije,[KOL]*RELATED(Artikli[RUC]))

Zatim krećemo da kreiramo meru PR, klikom na traku alata Modeling pa izborom opcije New Maeasure:

PR =

VAR ZarALL = CALCULATE([Zarada];ALL(Partneri))

RETURN DIVIDE([Zarada];ZarALL)

00196-1

U navedenoj formuli privremeno smo kreirali varijablu ZarALL koja računa zaradu poništavajući sve filtere kreirane na osnovu kolona u tabeli Partneri. Zatim smo iskoristili funkciju DIVIDE. Ona omogućava deljenje dva broja, a ako dođe do deljenja sa nulom vraća praznu vrednost ili neku drugu, koju mi navedemo, što može da se definiše kao treći, opcioni parametar. U ovom slučaju, rezultat je procenat.

Ako dodamo jedan slajser na osnovu kolone iz tabele Partneri, kao i tabelu sa vrednostima KLASIFIKACIJA i PR dobićemo udeo koji smo želeli da izračunamo, odnosno procentualnu zastupljenost proizvoda u vezi sa zadatim klasifikacijama. Da bi izveštaj bio još lepši, možemo da dodamo i jedan pie chart, kao i da još malo dodatno formatiramo pojedine njegove elemente.00196-2