Ako zoradiť mesiace v reporte Power BI podľa ich skutočného poradia, a nie abecedne

Dnes sa pozrieme na to, s čím sa borí takmer každý jeden začiatočník v Power BI – a to, ako zoradiť mesiace v reporte podľa ich skutočného poradia, a nie abecedne. Sú na to viaceré riešenia, ale len jedno je dokonalé – funkcionalita nazvaná “Zoradiť podľa stĺpca”. Ktorá sa dá využiť na oveľa viac, ako len na zoraďovanie stĺpcov. A preto si ju teraz pripomenieme.

Tento článok je ukážka z mojej knihy o Power BI. Pre potreby blogu bol mierne upravený.

Ukážeme si to opäť na našom vzorovom súbore Power BI. Spravme si na demonštráciu takúto jednoduchú kontingenčku:

  • do oblasti riadkov dáme z tabuľky Čas stĺpce CalendarYear a MonthName,
  • do oblasti hodnôt dáme merítko Obrat z tabuľky Objednávky.

Výsledok po rozkliknutí rokov bude vyzerať takto:

Keď sa pozriete na poradie mesiacov, tak uvidíte, že sú usporiadané abecedne podľa ich názvu, a nie podľa ich skutočného poradia v roku. Takisto, keď si dáte do oblasti riadkov v kontingenčke iba stĺpec MonthName z tabuľky Čas, tak výsledok bude rovnaký – mesiace budú nasledovať za sebou podľa abecedy, a nie podľa toho ako majú ísť.

Je to kvôli tomu, že kontingenčná tabuľka zoraďuje dáta v riadkoch aj stĺpcoch abecedne, ak ste použili textový stĺpec, resp. od najmenšej po najväčšiu hodnotu, ak ste použili číselný alebo dátumový stĺpec na rezanie údajov. My však potrebujeme zoradiť mesiace správne.

Možnosti, ako to napraviť, sú v podstate tieto:

  1. pridať do toho stĺpca s mesiacmi dvojciferné číslo na začiatok, tak aby všetky mesiace boli vo formáte napr. “02 – február”,
  2. použiť číslo mesiaca namiesto názvu mesiaca,
  3. nastaviť v dátovom modeli, aby sa Váš stĺpec triedil podľa iného stĺpca, ideálne číselného stĺpca.

Zatiaľ čo prvé dve možnosti sú len obchádzaním problému, a neriešia ho, tak tretia možnosť je ideálna aj z pohľadu nastavenia, aj neskoršej údržby. Preto sa budeme zaoberať iba touto 3. možnosťou.

Ako zoradiť mesiace – nastavenie v Power BI

Keď chcete nastaviť, aby sa daný stĺpec triedil podľa príslušných hodnôt v inom stĺpci, tak si vyberte stĺpec v ponuke v paneli napravo, kliknutím na jeho názov. My vyberieme stĺpec MonthName v tabuľke Čas. Mal by zostať orámovaný žltým rámikom:

Potom choďte do hlavného menu, do záložky Modelovanie. Tam kliknite na tlačidlo „Zoradiť podľa stĺpca“:

V ponuke vyberte stĺpec, podľa ktorého sa majú zoradiť položky z tohto stĺpca. My vyberieme, že ho chceme zoradiť podľa stĺpca MonthNumberOfYear, čiže podľa čísla mesiaca v roku:

Následne sa vám prekreslí kontingenčka v Power BI už správne:

Podmienky pre nastavenie funkcie Zoradiť podľa stĺpca

Táto funkcia Vám nemusí ísť zapnúť pre ľubovoľnú kombináciu stĺpcov v dátovom modeli. Sú tam totiž 2 podmienky, ktoré musia byť splnené:

  1. Triedený aj triediaci stĺpec musia byť z rovnakej tabuľky – ak nie sú, musíte jeden z nich dotiahnuť do tabuľky napr. pomocou funkcie RELATED,
  2. Medzi hodnotami triedeného aj triediaceho stĺpca musí byť vzťah 1:1, čo znamená, že ku každej unikátnej hodnote v triedenom stĺpci musí vždy prislúchať tá istá a zároveň iba jedna hodnota v triediacom stĺpci.

Druhá podmienka znamená to, že ak máte v triedenom stĺpci MonthName napríklad hodnotu January, tak v stĺpci MonthNumberOfYear, na každom riadku, musí tejto hodnote prislúchať vždy len hodnota 1″. Ak by to tak nebolo, tak by podkladový PowerPivot nevedel, ako jednoznačne zotriediť hodnoty v danom stĺpci. Napríklad ak by sme chceli zotriediť stĺpec MonthName podľa stĺpca CalendarYear, tak nám to nepôjde, pretože napr. k hodnote January v stĺpci MonthName prislúchajú až 4 hodnoty v stĺpci CalendarYear – a to “2001″, “2002”, “2003a2004. Preto Power BI odmietne takéto nastavenie, a zobrazí Vám nasledovnú chybu:

Dá sa to však obísť vypočítaným stĺpcom, a podľa neho dáte potom zotriediť pôvodný stĺpec. Do tohto vypočítaného stĺpca potrebujete napísať vzorec, ktorý bude vracať správne poradie prvkov, a zároveň bude spĺňať podmienku č. 2 vyššie. Ak to splníte, Power BI Vám dovolí zotriediť Váš stĺpec podľa takéhoto vypočítaného stĺpca.

Táto funkcionalita však má v Power BI oveľa širšie využitie. Viete ňou nielen zoradiť mesiace, ale aj nastaviť poradie riadkov v zobrazovanej tabuľke a v kontingenčke, poradie stĺpcov v kontingenčke, poradie stĺpcov či výrezov v grafoch, a poradie položiek/tlačítok v sliceroch. A možností je ešte oveľa, oveľa viac. Preto nie je od veci, zopakovať si túto funkcionalitu aspoň raz za čas. Len si potom dajte na jeden bug, medzičasom neoficiálne prehlásený za feature, pri použití funkcie ALL v Power BI. To je ale iba jediná chybička krásy, ktorú táto funkcionalita má. V ostatných prípadoch funguje perfektne 🙂