Tento článek je o funkci SUMX, která se v DAX dá použít k vysčítání oblasti, pokud při sčítání potřebujeme udělat nějakou úpravu.

To, co si ukazujeme u SUMX, platí obdobně i u dalších “x-ových” funkcí v DAXu – COUNTAX, COUNTX, AVERAGEX, MINX, MAXX…

Vyjdeme z tabulky, která obsahuje přehled aut. Ukážeme si tři typické úkoly, které jdou dobře řešit pomocí funkce SUMX.

Součet s jednoduchým výpočtem

Pokud bychom chtěli prostě sečíst cenu všech aut, použijeme funkci SUM. My ale chceme sečíst cenu, která by odpovídala tomu, že každé auto zlevníme o 10 000 Kč.

Bylo by možné, i když těžkopádné, nejprve vytvořit sloupec s rozdílem, a ten pak sečíst.

Pomocí SUMX to ale jde lépe:

  • Discounted price = sumx(cars;cars[Price]-10000)

První argument říká, že chceme sčítat z tabulky “cars”, a druhý argument, že chceme cenu před sečtením snížit o 10000 – tedy co se má provést s každým řádkem, než je zagregujeme dohromady.

Součet s vloženou funkcí

Možná bychom nechtěli zlevnit všechna auta, ale pouze ta, která jsou dražší než 200 000. Vnoříme tedy funkci IF:

  • Discounted price = sumx(cars;if(cars[Price]>200000;cars[Price]-10000;cars[Price]))

Prvním argumentem je zase tabulka, se kterou pracujeme. Ve druhé části opět říkáme, co provedeme se všemi řádky – tentokrát pomocí vložené funkce.

Filtrování tabulky

Teď se budeme věnovat první části syntaxe. Budeme chtít, aby ve výsledku byly ceny původní, nezlevněné, ale pouze za červená auta.

  • Discounted price = sumx(filter(cars;cars[Color]=”red”);cars[Price])

Toto by samozřejmě šlo zkombinovat s předchozími kroky – hrát si můžeme s prvním i druhým argumentem funkce. Mohli bychom tedy sčítat zlevněnou cenu jen za červená auta atd…

Videonávod

Na tomhle videu si ukážeme praktické použití funkce SUMX. Je to jedna z klíčových funkcí v Power BI, a i když na první pohledů může působit komplikovaně, je docela praktická.

 

1 Komentář

  1. Děkuji za článek! Je stručný a srozumitelný.

Komentáře není možné přidávat