Niekedy potrebujete informovať užívateľa reportu, že v ňom niečo spravil zle. Vybral viac položiek ako mal, nedal do kontingenčky nejaké dôležité pole, či jednoducho spravil niečo inak, ako ste si predstavovali. A aj keď reporty Power BI nemajú možnosť zobrazovať chybové hlásenie, tak sa to dá celkom jednoducho nasimulovať.
Trik je v tom, že na to vieme využiť vizuál Karta, ktorý sa používa na zobrazenie dynamického textu. Resp. jeho dve kópie, kde jedna bude zobrazovať normálne hlásenie či popisok stavu, a druhá bude zobrazovať chybové hlásenie. Na to si ale potrebujeme pripraviť najprv merítka, v ktorých budeme mať takéto hlásenia.
Začneme teda s našim vzorovým súborom Power BI. Spravíme si report, kde budeme mať na riadkoch krajiny – stĺpec Krajina z tabuľky Regióny – a vedľa neho merítko Obrat za rok, ktoré bude mať nasledujúci vzorec:
Obrat za rok = IF(HASONEVALUE(‘Čas'[CalendarYear]); CALCULATE([Obrat]; ALLEXCEPT(‘Čas’; ‘Čas'[CalendarYear])))
Toto merítko počíta obrat za celý rok, keď je niekde vybratý. Ak nie je vybratý, tak nevypočíta nič.
Po dosadení merítka do hore uvedenej tabuľky, a zapnutí zobrazovania aj prázdnych riadkov v tabuľke, bude výsledok vyzerať takto:
Nemáme vybraný nikde rok zo stĺpca ‘Čas'[CalendarYear], a preto to zobrazuje prázdne výsledky ku každej krajine.
Keď teraz vedľa tabuľky pridáme slicer vyrobený z tohto stĺpca s rokmi, a v ňom vyberieme 1 rok, tak sa už v tabuľke zobrazia čísla:
Výsledok je síce správny, a takto to má fungovať. Odkiaľ sa má ale užívateľ reportu dozvedieť, že výpočet toho merítka závisí od toho, že niekde vyberiete rok? Môže mu to samozrejme dôjsť z toho názvu merítka, ale väčšine z nich to nedôjde. Preto je v tomto prípade vhodné zobraziť užívateľovi chybové hlásenie, ak ho nevybral, alebo normálne hlásenie typu “Prehľad za rok XXX”, ak ho vybral.
To vieme bez problémov spraviť cez merítko, do ktorého si tie hlásenia vieme podmienene vypočítať:
Hlásenie = IF(HASONEVALUE(‘Čas'[CalendarYear]); “Prehľad za rok ” & SELECTEDVALUE(‘Čas'[CalendarYear]); “Vyberte 1 rok v sliceri”)
…a následne ho vieme zobraziť vizuálom Karta nad tou tabuľkou so slicerom. Ak je vybraný 1 rok v sliceri, tak sa to zobrazí takto:
…a v opačnom prípade takto:
Čo ale v prípade, že chceme chybové hlásenie zobraziť červenou farbou, a normálne hlásenie čiernou farbou?
Problém je v tom, že vizuál Karta momentálne ešte stále nepodporuje podmienené vyfarbovanie. Vie to zobraziť iba jednou farbou, a nevie ju meniť v závislosti od podmienok. Preto musíme spraviť náhradné riešenie.
To spočíva v tom, že si spravíme dve kópie vizuálu Karta, a dve merítka. Prvé merítko bude zobrazovať iba normálne hlásenie, a druhé merítko iba chybové hlásenie. Prvá kópia vizuálu bude zobrazovať prvé merítko, a bude ho zobrazovať čiernou farbou. Druhá kópia vizuálu bude zobrazovať druhé merítko, v ktorom je chybové hlásenie, a bude ho zobrazovať červenou farbou. Potom ich prekryjeme tak, aby boli tieto 2 vizuály zobrazené cez seba.
Vyrobíme si teda teraz tieto dve merítka:
Normálne hlásenie = IF(HASONEVALUE(‘Čas'[CalendarYear]); “Prehľad za rok ” & SELECTEDVALUE(‘Čas'[CalendarYear]); “”)
Chybové hlásenie = IF(HASONEVALUE(‘Čas'[CalendarYear]); “”; “Vyberte 1 rok v sliceri”)
Potom zmažeme z reportu pôvodný vizuál, ktorý nám zobrazoval to spoločné hlásenie, a namiesto neho tam dáme dva vizuály Karta. Prvá kópia vizuálu bude zobrazovať prvé merítko, a bude ho zobrazovať čiernou farbou. Druhá kópia vizuálu bude zobrazovať druhé merítko, v ktorom je chybové hlásenie, a bude ho zobrazovať červenou farbou. V oboch vizuáloch vypneme označenie kategórií.
Ak je teraz vybraný 1 rok v sliceri, tak sa to zobrazí takto:
…a v opačnom prípade takto:
Finálny trik je teraz taký, že oba vizuály prekryjeme cez seba tak, aby boli texty zarovno seba, a aby sa to tvárilo, že je to len jedna hláška. Môžeme si to dovoliť preto, lebo tieto vizuály sú štandardne priesvitné. To troške piplania sa so striafaním sa do presného pixelu, to bude vyzerať takto, ak je vybraný 1 rok v sliceri:
…a v opačnom prípade takto:
Takže takto jednoducho sa dá nasimulovať chybové hlásenie v reportoch Power BI. Nejde o žiadnu svetobornú funkcionalitu, len to využíva úplne základnú funkcionalitu reportu. A dokým nebude v tomto vizuáli implementované podmienené formátovanie, tak to zatiaľ ani nepôjde spraviť ľahšie. Takže si buď počkajte, kým to tam v bližšie neurčenom čase dorobia (mesiace, roky), alebo to takto jednoducho viete obísť a mať to hneď teraz 🙂
Autor, tréner a expert na Power BI, PowerPivot a jazyk DAX. Založil som tento web, aby som pomohol dostať Power BI do širšieho povedomia, a aby som ľuďom ukázal, že moderný a komplexný reporting ide vyriešiť rýchlo a jednoducho. Po nociach vzývam Majstra Yodu a tajne plánujem ovládnutie vesmíru.