Ako zmeniť poradie položiek pre stĺpec v kontingenčke

Naša analýza z predchádzajúceho článku má ešte drobný problém. Keď v kontingenčke rozkliknete ľubovoľný rok, a pozriete sa 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:

ppivot_triedenie_stlpcov1

Takisto, keď si dáte do oblasti riadkov v kontingenčke iba stĺpec MonthName z tabuľky Čas, 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.

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

  1. zadefinovať si vlastný zoznam hodnôt v Exceli, a dať triediť kontingenčku podľa neho,
  2. nastaviť v PowerPivote, aby sa Váš stĺpec triedil podľa iného stĺpca, ideálne číselného stĺpca.

Kým prvá alternatíva je prácna na nasadenie a udržiavanie, je to jediná možnosť ako to spraviť v prvej verzii PowerPivotu, ktorý bol uvedený ešte v roku 2010. Od druhej verzie však pribudla možnosť č. 2 vyššie, ktorá je oveľa jednoduchšia na nastavenie aj neskoršiu údržbu. A keďže aj 2. verzia PowerPivotu je dostupná pre Excel 2010 a vyššie, a mali by ste používať už len ju (alebo novšiu), budeme sa zaoberať iba touto 2. možnosťou.

Poznámka: V Power BI nastavíte túto funkcionalitu podľa postupu v tomto článku.

Ak teda chcete nastaviť, aby sa daný stĺpec triedil podľa príslušných hodnôt v inom stĺpci, prejdite do okna PowerPivotu. Tam prejdite do dátového zobrazenia (ak v ňom ešte nie ste), a prejdite na záložku s tabuľkou Čas:

ppivot_triedenie_stlpcov2

Potom si nájdite stĺpec, pre ktorý chcete zmeniť triedenie – v našom prípade stĺpec MonthName – a kliknite naňho. Stačí kliknúť hocikde do daného stĺpca. Potom nájdite v hornej lište PowerPivotu ikonu Zoradiť podľa stĺpca, a kliknite na ňu:

ppivot_triedenie_stlpcov3

Zobrazí sa okno pre nastavenie triedenia. V ňom, na pravej strane, môžete vybrať hociktorý stĺpec z tejto tabuľky, podľa príslušných hodnôt ktorého môžete triediť aktuálny stĺpec. V rozpadávacom boxe napravo teda vyberte stĺpec MonthNumberOfYear, ktorý obsahuje číslo mesiaca v roku, a podľa ktorého sa bude určovať poradie mesiacov pre stĺpec MonthName, kedykoľvek sa použije v kontingenčke:

ppivot_triedenie_stlpcov4

Potom kliknite na tlačítko OK, a vráťte sa naspäť do Excelu. Excel automaticky aplikuje Vaše posledné zmeny, a zmení poradie mesiacov v kontingenčke tak, ako ste to práve nastavili. Mesiace potom budú v kontingenčke už nasledovať správne:

ppivot_triedenie_stlpcov5

A takto to viete nastaviť aj pre všetky ostatné stĺpce, pri ktorých by ste chceli zmeniť ich zobrazované poradie v kontingenčke.

Nemusí Vám to však ísť 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á 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 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”, “2003” a “2004”. Preto PowerPivot odmietne takéto nastavenie, a zobrazí Vám nasledovnú chybu:

ppivot_triedenie_stlpcov6

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, PowerPivot Vám dovolí triediť Váš stĺpec podľa takéhoto vypočítaného stĺpca.

A tvorbe vypočítaných stĺpcov sa budeme venovať v ďalšom článku 🙂