DAX Rozdíl mezi Measure a Column + ukázka rozdílu na reportu

V Power BI nebo PowerPivot můžeme pomocí DAX vytvářet dva typy nových hodnot. Jsou to calculated measures (metriky) a columns (Sloupce). Rozdíl mezi measure a column a jeho pochopení je dalším významným krokem k porozumnění jazyka DAX.

Přidání nové metriky nebo sloupce provádíme nad tabulkou v Power BI tak, že klikneme pravým tlačítkem nad libovolný sloupec. Následně vybereme buď New measure nebo New column (viz. obrázek).

Column – přídáním nového sloupce do kterého následně napíšeme vzorec DAX dojde k tomu, že vzorec je zpracováván na úrovni tabulky řádek po řádku a na úrovni reportu dochází k sečtení všech hodnot sloupce. Vytvořený sloupec pak uvidíme přímo v tabulce.

Measure – U metriky je efekt jiný. Nevidíme je u tabulky jako nový sloupec, ale jako pole v nabídce pod tabulkou. V reportu se metrika počítá až na úrovni reportu v kontextu, ve kterém ho zobrazujeme.

Measure vs column s ukázkou reportu

Názorná ukázka snad pomůže pochopit rozdíl. V rámci ukázky budeme pracovat s těmito tabulkami:

  • Tržby (FactInternetSales)
  • Teritoria (DimSalesTerritory), ve kterých se prodává – geografické informace o tržbách, tzn. kde která tržba byla realizována
  • Kalendář (DimDate), který obsahuje datumy a pomocné informace jako měsíc, rok, atd.

Krok 1) Do tabulky s tržbami, která obsahuje jednotkové ceny výrobků, náklady na výrobu a prodané množství nejprve doplním nový sloupec s celkovými tržbami = cena * množství

Krok 2) Vyrobíme si jednoduchou power bi vizualizaci, kde si budu zobrazovat průběžný výsledek. Zobrazíme si tržby po teritoriích.

Krok 3) Teď ilustrujme rozdíl mezi measures a columns. Nejprve přidejme nový sloupec přes DAX vzorec (viz obrázek níže), který bude ukazovat poměr jednotkových nákladů a jednotkové ceny = UnitCosts/UnitPrice a zobrazme si výsledek v reportu.

Výsledek je nesmysl (viz obrázek) – došlo k tomu, že se sečetly procentuální podíly přes všechny řádky.

Krok 4) Aby report fungoval správně, tak musíme založit nikoliv nový sloupec, ale DAX metriku. Metrika se počítá až na úrovni reportu. Vzorec pro metriku bude podobný s tím rozdílem, že použijeme agregační funkci. Poměr nákladů a ceny = SUM(UnitCosts)/SUM(UnitPrice). Výsledek je přesně jak potřebujeme.

Rozdíl mezi measure a column

Doufám, že byl rozdíl mezi measure a column při založení nových hodnot dostatečně vysvětlen a na závěr dávám power bi dashboard.

Rate this post
Rubrika: DAX Power BI

O Ing. Jan Zedníček - Data Engineer & Controlling

Jmenuji se Honza Zedníček a působím jako data engineer freelancer. Během cca 10 let jsem zde shromáždil přes 600 IT case studies, průvodců, návodů a tipů určených zejména odborné veřejnosti, studentům a zájemcům o informace z oblastí Data Engineeringu, korporátních financí a reportingu. Zaměřuji se především na Microsoft technologie (on-prem i cloud) a různé synergické efekty v rámci jejich produktového portfolia pro dataře a finanční profesionály. Věnuji se také dalším platformám a významným hráčům z oblasti open source technologií. 🔥 Pokud vám tento článek pomohl, ocením referenci na vašem webu nebo zmínku v komunitě. A mám pro vás ještě tip: řešíte-li nějaký zapeklitý Excel problém, přihlašte se do naší Excel Facebook skupiny (2.4k+ členů), kde si pomáháme Excel CZ/SK diskuse ».

Leave a Reply

Your email address will not be published. Required fields are marked *