Síla myšlenky je neviditelná jako semeno, ze kterého vyroste obrovský strom. Je však příčinou viditelných změn v životě člověka. (L.N.Tolstoj)

Funkce Calculate v POWER PIVOT

Zveřejněno: 23. 10. 2018
Kategorie: Microsoft Office

Funkce CALCULATE je jedním z nejdůležitějších prvků celého jazyka DAX. Tato funkce nám umožní velmi pokročilé výpočty. Z předchozích dílů seriálu o POWER PIVOT víte, že POWER PIVOT nepočítá hodnoty na úrovni jednotlivých buněk (jako Excel), ale na úrovni jednotlivých sloupců. Pokud tedy v POWER PIVOT použijeme funkci napře. „AVERAGE“, tato funkce nám zprůměruje celý sloupec. Co když ale chceme průměrovat jen některé hodnoty? Například hodnoty pouze za konkrétní den, konkrétní produkt, skupinu produktů apod.

Ve cvičební souboru, který jste si připravili v minulých dílech (aktuální verze pro tento článek je k dispozici zde). máme objednávky z webu a také víme, jestli konkrétní datum byl všední den či víkend. Jak v tomto případě spočítat průměrnou výši objednávky pro jednotlivé dny v týdnu (pondělí, úterý, středa…)? S tím nám pomůže právě funkce CALCULATE.

Protože nepotřebujeme počítat hodnoty na úrovni každého řádku (viz článek metriky vs. sloupce), použijeme pro výpočet kalkulované metriky. Výpočet pro průměrnou hodnotu objednávky učiněné vždy v pondělí je následující:

pondělí:=CALCULATE(AVERAGE(web[Obrat za produkt]);web[Den v týdnu]=“pondělí“)

kdy:

power pivot - legenda ke kalkulovane metrice1

Při seznamování s funkcí CALCULATE můžete postupovat tak, že si nejdříve napíšete agregační funkcí (např. SUM, AVERAGE, COUNT apod.) a tu následně vložíte do funkce CALCULATE, tj. agregované hodnoty budete filtrovat pomocí CALCULATE.

Nyní si spočítejte průměrnou hodnotu objednávky pro všechny dny (pondělí…neděle).

 

Kombinované filtry

Funkce CALCULATE samozřejmě umí pracovat s více filtry najednou, tj. jsme pomoci ní si filtrovat např. počet objednávek ze soboty, jejichž obrat je vyšší jak 3 000 Kč. Výpočet bude následující (použijeme kalkulovanou míru)

Výpočet bude následující:

Počet objednávek:= CALCULATE(COUNTROWS(web);web[Den v týdnu]=“sobota“;web[Obrat za produkty]>3000)

kdy:

power pivot - legenda ke kalkulovane metrice2

 

Nyní si vytvořte kalkulované míry pro jednotlivé dny v týdnu, tj. spočítejte počet objednávek pro jednotlivé dny, kdy hodnota objednávky musí být vyšší než 3 000 Kč. Názvy kalkulovaných mír se vždy budou skládat z textu „Počet velkých objednávek-“+den v týdnu,t j. Počet velkých objednávek-pondělí, počet velkých objednávek-úterý ….

S těmito kalkulovanými mírami budeme pracovat v dalších dílech tohoto seriálu.