Vypočítané polia v PowerPivote – merítka

V predchádzajúcich článkoch sme si ukázali, ako využiť vypočítané stĺpce na vytvorenie vlastných analytických kategórií, či opravovať chyby v dátach. V PowerPivote však existujú ešte vypočítané polia, resp. merítka, ktoré sa počítajú na úrovni kontingenčnej tabuľky. Vďaka nim môžete robiť nielen pokročilú analytiku, ale aj zobraziť dáta úplne ľubovoľným spôsobom, aký len potrebujete – bez ohľadu na to, či to kontingenčka umožňuje alebo nie. Je to tým, že kontingenčka takéto polia nepočíta, ale počíta ich PowerPivot pomocou jazyka DAX.

Dôležitá poznámka: Excel tieto polia nazýva rôzne podľa verzie, jazyka a edície, ktorú máte. V jednej z nich sa dokonca nazývajú Vypočítané polia, a to spôsobuje užívateľom chaos a zvádza ich k tomu, že sú to klasické excelovské vypočítané polia kontingenčnej tabuľky. Preto ich my budeme nazývať merítka.

Hlavný rozdiel medzi vypočítanými stĺpcami a merítkami je teda v tom, že:

  1. vypočítané stĺpce sa počítajú len v danej podkladovej tabuľke – vzorec sa spúšťa osobitne pre každý riadok tejto tabuľky,
  2. merítka sa počítajú na úrovni kontingenčky – vzorec sa spúšťa osobitne pre každú bunku kontingenčky, kde je toto merítko použité.

Merítka navyše majú prístup ku všetkým detailným riadkom z dátového modelu, ktoré prislúchajú aktuálne počítanej bunke kontingenčky. A v prípade potreby sa dá tento prístup rozšíriť na všetky riadky v dátovom modeli. Čo neskutočne obrovsky rozširuje naše analytické možnosti.

Merítka sa definujú v tabuľkovom zobrazení PowerPivotu, “pod čiarou”, resp. v mriežke pod zobrazenými dátami tabuľky:

ppivot_meritka1_1

Pre zadefinovanie merítka môžete použiť ľubovoľnú bunku. Je úplne jedno, ktorú z nich použijete, pretože na jeho umiestnení nezáleží. Ono dokonca nezáleží veľmi ani na tom, ku ktorej tabuľke zadefinujete merítko, pretože zadefinovanie v konkrétnej tabuľke má vplyv len na to, pri akej tabuľke sa dané merítko zobrazí v ponuke kontingenčnej tabuľky.

Merítka sa definujú v tomto formáte:

Názov merítka := Vzorec

Ak chceme vytvoriť merítko Obrat, ktoré bude spočítavať sumu z poľa Cena objednávky v tabuľke Objednávky, tak v tabuľke Objednávky pod čiarou napíšeme do ľubovoľnej bunky tento vzorec:

Obrat := SUM([Cena objednávky])

Výsledok bude vyzerať takto:

ppivot_meritka1_2

Všimnite si, že nám to spočítalo sumu všetkých objednávok za celú históriu firmy. Tento výpočet berte len ako orientačný, pretože podstatné bude to, čo o chvíľu uvidíte v kontingenčke.

Pred kontrolou v kontingenčke je dobré ešte nastaviť formát tohto merítka, aby sme to nemuseli robiť ručne v kontingenčke vždy, keď použijeme toto merítko. Formát nastavíme v hornej lište PowerPivotu, v oblasti Formátovanie. Tu klikneme na políčko Formát: Všeobecné, a z ponuky vyberieme Mena. To nám nastaví predvolené formátovanie merítka na formát meny:

ppivot_meritka1_3

A teraz si ho ideme vyskúšať do kontingenčky. Prepnite sa teda do kontingenčky, a choďte do jej ponuky. Pod tabuľkou Objednávky by sa Vám teraz malo zobraziť nové políčko Obrat, ktoré z pohľadu užívateľa vyzerá ako každé iné políčko (pravdepodobne až na konci zoznamu políčok pre danú tabuľku – ale to závisí aj od Vášho Excelu):

ppivot_meritka1_4

Užívateľ môže toto políčko použiť v oblasti hodnôt kontingenčky tak ako hociktoré iné políčko. A aby sme to vyskúšali, upravte kontingenčku takto:

  1. do riadkov dajte hierarchiu Rok-Mesiac-Deň z tabuľky Čas,
  2. do oblasti hodnôt dajte políčka Cena objednávky a Obrat z tabuľky Objednávky.

Výsledok by mal vyzerať takto:

ppivot_meritka1_5

Všimnite si, že v kontingenčke máme teraz 2 stĺpce, a oba obsahujú rovnaké čísla – obrat za zvolený rok, resp. mesiac, deň, … Rozdiel medzi tými 2 stĺpcami je takýto:

  1. stĺpec Súčet Cena objednávky je klasické políčko, ktorému môžete v kontingenčke hocikedy zmeniť spôsob zobrazovania alebo agregačnú funkciu,
  2. stĺpec Obrat je merítko, ktorému užívateľ nemôže zmeniť v kontingenčke nič. Zato mu však viete vytvoriť merítko, ktoré vie vypočítať aj to, čo samotná kontingenčka nevie – napr. “Obrat za rovnaké obdobie pred rokom”, alebo “Priemerný obrat za posledné 3 dni”, prípadne “Obrat YTD”. Možností je hromada, a na tomto blogu im bude ešte venovaná hromada ďalších článkov 🙂

Takisto je rozdiel v tom, že vzorec, ktorý ste zadali v definícii merítka, sa počíta zvlášť pre každú bunku v kontingenčke, ktorá je v kontingenčke zobrazená v stĺpci s merítkom. A počíta sa štandardne zo všetkých riadkov v dátovom modeli, ktoré jej prislúchajú. V DAXe to ale môžete zmeniť, a, ako sme už spomínali na začiatku článku, pomocou toho vypočítať hocičo, čo len budete potrebovať 😉 Pokročilejšia analytika potom spočíva hlavne v tom, že vytvoríte viacero vypočítaných stĺpcov a merítok v jazyku DAX, a previažete rôznu ďalšiu funkcionalitu medzi sebou.

Merítka sa však vedia odkazovať aj na iné, už existujúce merítka. Táto technika sa používa najmä vtedy, keď si chcete zjednodušiť vzorce pri komplikovanejších merítkach, alebo sa chcete vyhnúť kopírovaniu vzorcov do viacerých merítok. A preto si to ukážeme teraz tiež.

Presunieme sa do okna PowerPivotu, a vytvoríme si tieto 3 ďalšie merítka v tabuľke Objednávky:

Náklady := SUM([TotalProductCost_USD])

Zisk := [Obrat] – [Náklady]

Marža := [Zisk] / [Obrat]

Merítkam Náklady a Zisk nastavte formát Mena, a merítku Marža nastavte formát Percentá. Výsledok bude vyzerať takto:

ppivot_meritka1_6

Všimnite si, že ak chceme použiť už existujúce merítko vo vzorci ďalšieho merítka, stačí použiť jeho názov v hranatých zátvorkách (podobne ako pri stĺpcoch). Mohli sme síce napísať vzorec pre Maržu aj takto:

Marža:=(SUM([Cena objednávky]) – SUM([TotalProductCost_USD]))
/ SUM([Cena objednávky])

…ale myslím, že ten prvý vzorec je podstatne prehľadnejší 😉 A práve preto sme si ukázali, že v merítkach môžete použiť v ich vzorcoch aj iné merítka. Má to len jediné obmedzenie, tak ako v Exceli – nesmie byť medzi nimi kruhová závislosť. Napr. ak sa Merítko1 počíta z Merítka2, a Merítko2 sa počíta z Merítka1, tak toto nie je povolené priamo ani nepriamo. Všetko ostatné však povolené je.

Ideme si nakoniec ešte vyskúšať tieto naše merítka v kontingenčke. Prepnite sa do Excelu, a pridajte do kontingenčky, do oblasti hodnôt, tieto 3 merítka, ktoré sme práve vytvorili – čiže Náklady, Zisk a Marža. Výsledok bude vyzerať takto:

ppivot_meritka1_7

Takto teda viete vytvoriť základné merítka. Tu však celá problematika analýz ešte len začína. Takže v ďalších článkoch si ukážeme, ako vieme zmeniť kontext merítka, použiť fitre a anitifiltre, funkcie Time Intelligence, a ďalšie. Pretože práve tu začína tá naozajstná analytická zábava 🙂