Zápis komplikovaných kombinací logických funkcí a podmínek obvykle nepatří k oblíbeným koníčkům běžných uživatelů, v DAXu ani v excelovských vzorcích.

V obou situacích můžeme použít funkci KDYŽ / IF pro situace, kdy se vybírá ze dvou možností. V excelovských vzorcích máme nově funkci IFS, která umožní řetězit podmínky za sebe, ale v DAXu ne.

Jak na to?

Např. v této tabulce chceme odhalit červené Alfy Romeo a stříbrné drahé Opely.

Pro kombinace kritérií, která mají platit současně, resp. alespoň jedno, se v DAXu používají funkce AND a OR (zvládnou max dvě podmínky), nebo příslušné operátory.

Mohli bychom zapsat takovouto funkci s IF a fungovalo by to:

  • Description =
       IF(
          Sheet1[Brand] = “Alfa Romeo”&& Sheet1[Color] = “Red”,
          “Red Alfa”,
          IF(
             Sheet1[Brand] = “Opel”&& Sheet1[Color] = “Silver”&& Sheet1[Price] > 4000,
             “Expensive silver Opel”,
             BLANK ()
             )
          )

jenomže pokud by podmínek bylo hodně, bude už hodně vnořených IFů a funkce bude nepřehledná. 

IFS v DAXu není, ale můžeme takto zapsat SWITCH:

  • Description =
       SWITCH (
          TRUE (),
          Sheet1[Brand] = “Alfa Romeo” && Sheet1[Color] = “Red”, “Red Alfa”,
          Sheet1[Brand] = “Opel” && Sheet1[Color] = “Silver” && Sheet1[Price] > 4000, “Expensive silver Opel”
    )

Výhoda je, že zatímco v IF musíme vkládat jednu funkci do druhé, do třetí atd., ve SWITCHi můžeme řetězit jednoduše za sebe – přesně jako to dělá už zmíněná IFS ve vzorečcích Excelu.