Funkcije filteri
DAX poseduje klasu funkcija koja vrši filtriranje podataka. Za zadate argumente one kao rezultat vraćaju filtriranu tabelu. Obično se koriste u kombinaciji sa nekom drugom funkcijom, a njihova specifičnost je i da dozvoljavaju da se kreiraju mere koje ignorišu ograničenja postojećih filtera u Pivot tabeli, kao i interaktivnih filtera kao što su Slicers i Timeline. U tekstu koji sledi ukratko će biti opisane neke od njih…
Najčešće korišćena funkcija za filtriranje je funkcija FILTER, a njena sintaksa je:
FILTER(<naziv tabele>,<uslov za filtriranje>)
Obično se koristi u kombinaciji sa nekom od funkcija za agregaciju podatka. Na primer, ako želimo da sumiramo količine svih prodatih piva napisali bi izraz:
SumaProdatihKolicinaPiva:= SUMX(FILTER(Artikli,[KLASIFIKACIJA]=“PIVA“),[SUM of KOL])
Funkcija FILTER je prvi argument funkcije SUMX i ona treba da vrati sve redove iz tabele Artikli kod kojih kolona KLASIFIKACIJA ima vrednost “PIVA”. Drugi argument je implicitno zadata mera suma kolona. Kada je prvi argument filter, drugi argument mora da bude neka mera.

Funkcija ALL je nešto složenija. Evo njene sintakse:
ALL( {<naziv tabele> | <kolona1>[, <kolona2>[, <kolona3>[,…]]]} )
Ako se navede samo sa nazivom tabele, bez kolona, podrazumeva se da filter treba da vrati sve vrednosti kolona. Odnosno, pomoću ove funkcije ukidamo sve postojeće filtere nad zadatom tabelom. Na primer, da bi smo videli sumu svih količina napisaćemo izraz:
SveKolicine:=SUMX(ALL(Transakcije),[SUM of KOL])
Pored navedene sintakse funkcija ALL može umesto naziva tabele kao argument imati i nazive jedne ili više kolona. U tom slučaju ona uklanja filtere samo sa tih kolona, odnosno uzima u obzir sve njihove vrednosti. Na primer:
SkoroSveKolicine:=SUMX(ALL(Transakcije[GODINA],Transakcije[MESEC]),[SUM of KOL])

Ako obratite pažnju, videćete da slajseri za mere SveKolicine i SkoroSveKolicine „ne rade“, što je efekat koji smo želeli da postignemo primenom ALL funkcije. Sa druge strane, oni su uspešno filtrirali implicitnu meru SUM Of KOL.
Za filtriranje možemo da iskoristimo i funkciju ALLEXCEPT. Ona se koristi za dobijanje svih vrednosti u tabelu osim nekih, za koje je dozvoljeno koristiti filtere. Njena sintaksa je:
ALLEXCEPT(<tabela>,<kolona1>[,<kolona2>[,…]])
Na kraju, spomenućemo i funkciju ALLSELECTED, čija je sintaksa:
ALLSELECTED([<tabela> | <kolona>])
Ova funkcija ima za cilj da naglasi primenu filtera navođenjem imena tabele ili kolone na osnovu koje se vrši filtriranje izveštaja.