Tento článek je o jedné z nejdůležitějších funkcí v DAXu – o funkci CALCULATE. Tato funkce typicky sdružuje více funkcí dohromady, např. FILTER a jinou agregační funkci – např. SUM, MAX, FIRSTDATE atd.

Umožňuje tedy aplikovat určitou funkci pouze na hodnoty odpovídající určitému kritériu. 

Pro ukázku použijeme tato data, obsahující informace o prodejích a tržbách za jednotlivá zboží.

calculate původní data

Naším úkolem bude vysčítat tržby za jahodovou zmrzlinu.

Funkce bude zapsaná takto:

  • Tržby za jahodovou:=CALCULATE(SUM(prodeje[Tržba]);FILTER(prodeje;[Zboží]=”Jahodová zmrzlina”))

Protože:

  • SUM – tržby sčítáme, tedy používáme funkci SUM na sloupec “Tržba” v tabulce “prodeje”.
  • FILTER – zajímají nás pouze položky, které mají ve sloupci “Zboží” tabulky “prodeje” hodnotu “Jahodová zmrzlina”.
  • CALCULATE – tato funkce obě předešlé “obalí” a dá tomu všemu smysl.

calculate hotovo

Poznámky:

  • Obdobně bychom mohli např. zjistit nejvyšší tržbu za jahodovou zmrzlinu takto:
    • Nejvyšší tržby za jahodovou:=CALCULATE(SUM(prodeje[Tržba]);FILTER(prodeje;[Zboží]=”Jahodová zmrzlina”))

Uvedený příklad je ke stažení tady