Agregace v DAX – Jak fungují agregace + přehled

Agregační funkce v jazyce DAX slouží k získání určitého sumarizovaného nebo seskupeného pohledu na data. Díky tomu můžeme data ve vysokém detailu v učitém sloupci pomocí agregace upravit do přehlednější a reportovatelné podoby. Můžeme například sečíst (SUM, SUMX) nějakou peněžní metriku po jednotlivých kategoriích nebo třeba vyjádřit maximální nebo minimální (MAX, MAXX, MIN, MINX) hodnotu přes kategorie.

Seznam Agregačních funkcí v DAX

Funkce můžeme rozdělit do 2 kategorií. V DAX pro Power BI a PowerPivot existuje zvláštnost oproti Excelu v tom, že některé funkce v DAX mají ekvivalentní funkci, která končí na „X„. Tyto X funkce jsem vysvětlil v článku SUM vs SUMX.

1) Standardní funkce: Jako parametr přijímají nejčastěji <sloupec>, kromě fce COUNTROWS, kde je parametrem <tabulka>. Tyto funkce provádějí agregaci vždy nad celým sloupcem.

  • SUM – sečte hodnoty v určitém sloupci
  • COUNT – počet číselných hodnot v určitém sloupci
  • COUNTA – počet neprázdných hodnot ve sloupci včetně textu
  • MAX – vrací maximální hodnotu v určitém sloupci
  • MIN – vrací minimální hodnotu v určitém sloupci
  • AVERAGE – průměr hodnot v určitém sloupci
  • AVERAGEA – pracuje stejně jako funkce AVERAGE s tím rozdílem, že zpracovává i nenumerické znaky
  • COUNTBLANK – sečte všechny počet prýzdných hodnot ve sloupci
  • COUNTROWS – počet řádků v tabulce, nejčastěji se používá v kombinaci s funkcí FILTER.

2) X Funkce: Tyto funkce přijímají jako parametr tabulku a výraz <tabulka>, <expression> a následně iterují řádek po řádku v dané tabulce. Významově jsou stejné jako ty uvedené výše.

  • SUMX
  • MAXX
  • MINX
  • COUNTX
  • AVERAGEX
  • COUNTX

DAX agregace na příkladu Power BI reportu – agragační funkce v praxi

K příkladu použiju opět Power BI laboratoř, kterou jsem vytvořil v minulých dílech. Pracovat budu se 2 tabulkami – Tržby (FactInternetSales) a Kalendář (DimDate), viz model.

Agregace datový model

Dále postupně vytvořím metriky pomocí standardních agregačních funkcí a nechám zobrazit v reportu

Reagovat na příspěvek