OR(OR(OR(…))) – temu se lahko izognete | BI trik

OR(OR(OR(…))) – temu se lahko izognete | BI trik

01. 04. 2020 Poslovna analitika, B2

Gotovo se vam je že kdaj zgodilo, da ste morali izračunati neko vrednost pod določenim pogojem. Na primer, zanima nas vrednost prodaje, vendar le skupne vrednosti za določene skupine držav.

Oglejmo si na konkretnem primeru.

dax

Imejmo spodnji izračun.

dax

V izračunu smo uporabili funkcijo OR (logični ali). Z njeno pomočjo smo tabelo D_KUPEC filtrirali le na Nemčijo in Avstrijo ter s tem tudi poskrbeli za filtracijo podatkov prodaje v tabeli F_PRODAJA. Tako smo izračunali skupno vrednost prodaje v omenjenih državah.

Prva težava nastopi, če želimo izračun dopolniti in vključiti v skupno vsoto še Švico. Funkcija OR namreč sprejme le 2 argumenta. Kako torej dodati Švico? Oglejmo si nekaj možnosti.

1. Izračun dopolnimo z gnezdenjem še ene OR funkcije.

dax

Možnost sicer vrne pravi rezultat, vendar si lahko mislite, koliko gnezditev funkcije OR bi bilo potrebnih v primeru, da bi želeli izračunati skupno vrednost prodaje za več različnih držav – tu trenutno opazujemo skupno vrednost prodaje le za 3.

2. Gnezdenju funkcije OR se izognemo z rabo operatorja ||.

dax

Funkcijo OR oziroma njeno večkratno ponovitev ustrezno zamenja raba operatorja || (logični ali). Kljub temu pa je nadležno za vsak nov pogoj ponavljati sintakso D_KUPEC[Država]=<izbrana_država>.

3. Uporabimo operator IN, ki poenostavi logične pogoje.

dax

Na ta način dobimo isti rezultat, sintaksa pa je čista in posledično bolj berljiva.

dax

Več kot imamo pogojev, več pridobimo, če uporabljamo zadnjo izmed predstavljenih možnosti.

POZOR. Z vsemi 3 možnostmi smo omejeni na filtriranje le enega stolpca tabele. Pogoj se ne more nanašati na različne stolpce/tabele.

Ste se v zgornjih primerih prvič srečali s funkcijo CALCULATE? V arhivu naših trikov se najde novička, ki jo podrobno predstavi.

Si želite obvladati Power BI? Potem vas vabimo na BI akademijo.

BI akademija

 

 

Avtor: Neža Dimec

 

Nazaj