DAX, osnovni pojmovi

DAX (Data Analysis Expressions) je jezik koji se koristi za kreiranje izraza (formula) radi pravljenja izveštajnih dimenzija koje se koriste u PowerPivot tabelama. Isti izrazi mogu da se koriste i za tabularni model u okviru rešenja MS SQL Server Analysis Services. Veliki broj DAX funkcija ima istu sintaksu kao Excel funkcije, dok neke druge mogu da rade sa relacionim podacima i vrše dinamičku agregaciju podataka, njihovo filtriranje itd.

Uvod možda deluje zastrašujuće, ali DAX izrazi se ne razlikuju puno od formula koje ste ranije kreirali u Excel-u. Njih koristimo radi formiranja:

  • izračunatih kolona (Calculated Columns)
  • mera (Measures)

Izračunate kolone u velikoj meri podsećaju na kolone koje dodajemo u strukturiranim tabelama. One su važne jer ih, osim za kreiranje izveštajnih dimenzija, možemo iskoristiti i za kreiranje Slicers i Timeline interaktivnih filtera.

Mere su formule koje se pišu direktno u modelu, a možemo da ih iskoristimo za kreiranje znatno složenijih izveštajnih dimenzija. U verziji 2013 mere su se još nazivale i izračunatim poljima (Calculated Fields), a od verzije 2016 ponovo se nazivaju mere (Measures).

Pored mera koje smo sami napravili (eksplicitne mere), postoje i implicitne mere koje se automatski generišu prevlačenjem izveštanih dimenzija u polja za agregaciju podataka. Na primer, prevlačenjem dimenzije KOL u polje za agregaciju podataka (Values) implicitno se kreira mera SUM of KOL. Od verzije 2016 postoji mogućnost da se i implicitne mere vide u modelu. To postižemo klikom na dugme Show Implicit Measures u Advanced traci alata.

Hajde da kreiramo dva jednostavna DAX izraza! Klikom na dugme Manage u Power Pivot traci alata otvaramo prozor Modela podataka, a zatim treba da se pozicioniramo na onu tabelu (neka od tabela koju smo prethodno dodali u Model) u kojoj želimo da kreiramo izračunate kolone ili mere.

Ako dodajemo izračunatu kolonu treba da kliknemo ispod oznake Add Column, sa krajnje desne strane tabele. Zatim u polju za unos formula upisujemo formulu tako što je započinjemo znakom „=“, a zatim ispisujemo DAX izraz. Prilikom pisanja formula pokreće se mehanizam poznat kao Intellisense koji nam automatski nudi nazive kolona ili DAX funkcije koje možemo da iskoristimo za kreiranje izraza, što značajno uprošćava proces njihovog pisanja. U našem primeru odabrali smo tabelu Artikli želimo da kreiramo izraz koji prodajnu cenu deli sa kursem EUR:

=[PC]/120

00122-1

Nakon što smo uneli formulu nova kolona00122-2 će se automatski popuniti izračunatim vrednostima. Ona dobija privremeno ime CalculatedColumn<n> (n je neki ceo broj). Pošto ovo ime nije prikladno, promenićemo ga tako što ćemo da kliknemo desnim tasterom miša na naziv kolone i u kontestnom meniju izaberemo opciju Rename Column. Zaglavlje kolone će promeniti boju i možemo da unesemo neko prikladnije ime, npr. „PC (EUR)“. U ovom meniju postoji još nekoliko opcija za manipulaciju izračunatim kolonama, koje npr. možemo da sakrijemo, zamrznemo, promenimo im širinu ili redosled…

Bilo da pravimo izračunate kolone ili00122-4 mere, odmah nakon što ih napravimo, treba da odredimo način prikaza njihovog sadržaja (formatiranje). To ćemo najlakše da učinimo tako što odemo na Home traku alata, pa u odeljku Formatting izaberemo neku od opcija za formatiranje (General, Decimal, Percent, Currency etc.).. Osnovno formatiranje koje dobija svaka formula nakon svog nastanka je General, što možemo da vidimo kada selektujemo izračunatu kolonu ili meru. U zavisnosti od sadržaja formule dalje im dodeljujemo željeni format. Na primer, malopre kreiranu izračunatu kolonu „PC (EUR)“ možemo da formatiramo kao decimalan broj sa dve decimale.

Mere možemo da napravimo na dva načina. Prvi način bio bi da kliknemo u polje ispod tabele sa podacima (Calculation Area), u nekoj od tabela gde želimo da kreiramo meru. Zatim navodimo naziv mere, pa simbol „:=“, a na kraju pišemo željeni DAX izraz. Na primer, ako se pozicioniramo na tabelu Transakcije možemo da napravimo meru koja sumira sve prodate količine:

SumaKolicina:=SUM([KOL])

00122-3

Drugi način za kreiranje mera je pomoću opcije New Measure, koja se nalazi u meniju Measures u Power Pivot traci alata. Nakon što je pokrenemo otvoriće se dijalog prozor u čijem zaglavlju najpre unosimo naziv tabele u kojoj kreiramo meru (Table Name), a zatim ime mere (Measure name). Na kraju u centralnom delu prozora unosimo i DAX izraz. Tokom unosa formulu možemo da testiramo, a možemo i da odredimo format prikaza broja. Nakon što unesemo ispravnu formulu mera koju smo kreirali pojaviće se u zadatoj tabeli Modela podataka. U meniju Measures nalazi se još i opcija Manage Measures, pomoću koje možemo da menjamo prethodno kreirane mere.

00122-5

Ako bi smo sada izabrali Pivot tabelu (Power Pivot), koju smo napravili na osnovu ovog Modela podataka, videli bi smo dve nove izveštajne dimenzije: dodatu izračunatu kolonu „PC (EUR)“ i meru sa nazivom „SumaKolicina“.