TRIKOVI U EXCELU 144. DEO – Koliko su inteligentna Vaša poređenja?
Sprečite primenu filtera pomoću inteligentnih vremenskih funkcija
PROBLEM KORISNIKA: Šta uraditi kada treba uporediti prodaju za jedan datum sa svim datumima u mesecu? Ili sa brojem od početka meseca do tog datuma (MTD)? Ili sa prodajom iz neke prethodne godine?
DAX uvodi mnoge nove inteligentne vremenske funkcije koje mogu da se koriste da se spreči primena nekog filtera.
PAŽNJA: U logici za korišćenje funkcije Calculate s inteligentnim vremenskim funkcijama postoji greška.
REŠENJE: Ako želite da uporedite kalkulisanu prodaju od početka meseca do određenog datuma, trebalo bi da možete da ponovo filtrirate taj datum pomoću sledeće funkcije:
=CALCULATE(Sum(Sales[Revenue]),DATESMTD(Sales[Date])).
Funkcija DATESMTD() daje listu datuma koji se mogu razmatrati. To nije dobro radilo u beta verziji PowerPivot-a. Trebalo je da u finalnom proizvodu bude popravljeno ali nije. Zaobilazno rešenje je da se doda još jedan filter sa ALL(tabela koja sadrži datume). U ovom slučaju, nastaje formula:
=CALCULATE(Sum(Sales[Revenue]),DATESMTD(Sales[Date]),ALL(Sales)).
Problem je što će korišćenje funkcije ALL(Sales) nadjačati sve filtere u tabeli prodaje. Na Slici 1, novo dugme za filtriranje filtrira pivot tabelu tako da prikazuje samo jedan proizvod. Filter All(Sales) u DAX meri nadjačava taj filter proizvoda (Slika 2).
Zaobilazno rešenje je da se nadjačaju svi filteri osim filtera proizvoda:
=CALCULATE(Sum(Sales[Revenue]),DATESMTD(Sales[Date]),AllExcept(Sales,Sales[Product])) (Slika 3).
Neželjeni nusproizvod ovoga jeste da je formula morala da se prepravi samo zbog toga što je dodato dugme za filtriranje. Morali biste da se setite da prepravite formulu ako neko doda neko polje kolona, polje redova ili bilo koje dugme za filtriranje.