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

Poslední aktualizace:

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 article

Jmenuji se Honza Zedníček a nejčastěji se se mnou v civilu můžete potkat v kancelářích Kentico Software v Brně, kde působím jako BI Developer. Částečně pracuji také jako freelancer. Tuto práci dělám pro různé firmy již přes 5 let, ale Kentico je moje srdcovka ♡. Před tím jsem pracoval jako finanční controller třeba v Aero Vodochody a Sberbank nebo jako manažer dluhopisového programu v investiční skupině Unicapital. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a rád ochutnávám dobré rumy. Svoje znalosti se snažím zapisovat na tento web - abych je nezapomněl (působením rumu ^^) a sloužily i někomu dalšímu. Nebojte se položit dotaz nebo reagovat do komentáře. Přihlašte se do naší nové Excel facebook skupiny Excel CZ/SK diskuse »

Category: DAX Power BI Tags:

About Ing. Jan Zedníček - BI Developer, Finance controller

Jmenuji se Honza Zedníček a nejčastěji se se mnou v civilu můžete potkat v kancelářích Kentico Software v Brně, kde působím jako BI Developer. Částečně pracuji také jako freelancer. Tuto práci dělám pro různé firmy již přes 5 let, ale Kentico je moje srdcovka ♡. Před tím jsem pracoval jako finanční controller třeba v Aero Vodochody a Sberbank nebo jako manažer dluhopisového programu v investiční skupině Unicapital. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a rád ochutnávám dobré rumy. Svoje znalosti se snažím zapisovat na tento web - abych je nezapomněl (působením rumu ^^) a sloužily i někomu dalšímu. Nebojte se položit dotaz nebo reagovat do komentáře. Přihlašte se do naší nové Excel facebook skupiny Excel CZ/SK diskuse »

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.