5 chýb pri samoučení jazyka DAX, PowerPivotu a Power BI

Keď sa tak vo firmách pozerám, ako sa ľudia sami snažia naučiť jazyk DAX, tak sa v tom opakuje niekoľko rovnakých postupov. Z ktorých väčšina nie je zrovna vhodná, a najmä na výsledkoch sa potom nedá stavať do budúcnosti. Preto sa teraz pozrieme na to, akých 5 chýb sa ľudia dopúšťajú najčastejšie pri samoučení sa jazyka DAX, a čo s tým spraviť.

Chyba č. 1 – nejak na to dôjdem

Toto je bežný spôsob učenia sa takmer všetkého, a zároveň najmenej efektívny z tých, ktoré poznám. Má pravdepodobne pôvod v klasickom školstve, kde sú decká nútené používať nejaký nástroj, ale zároveň im zakazujú pýtať sa, ako sa to používa. Podľa hesla “hodíme ťa do vody a plávaj”. Čo je dosť ťažké prekonať, najmä keď to vo vás predtým poctivo pestovali 12-18 rokov (základná až stredná/vysoká škola, česť výnimkám). Preto sa aj veľa ľudí snaží zobrať daný nástroj “do ruky”, a koumá dlhé dni a hodiny, ako asi spraví to čo má spraviť. Jednoduché veci takto síce idú po čase spraviť, aj keď za cenu gulášového riešenia. Na pokročilejšie riešenia si takýmto spôsobom ale asi už nenájdete dostatok času, pretože by vám to trvalo vytvoriť mesiace až roky. Aj napriek tomu je to ale asi najčastejší spôsob učenia sa.

Chyba č. 2 – takto nejako to funguje v Exceli

Keď začnete písať prvé vzorce v jazyku DAX, tak veľmi rýchlo zistíte, že v DAX-e funguje niekoľko desiatok funkcií úplne rovnako ako v Exceli. A ak máte najnovší DAX, tak autocomplete vám pri písaní vzorcov doplní aj to, o čom ste nevedeli, že ste tam mali dať, ale vďaka tomu ten vzorec zbehne. Čo je fajn na začiatok, a aj jeden z dôvodov, prečo navrhli DAX tak ako ho navrhli – aby naňho používatelia Excelu vedeli rýchlo prejsť. Časom však prídu prvé problémy – chcete porovnať dva ukazovatele? Spraviť pomer ukazovateľa k tomu istému na vyššej úrovni? Či spraviť medziročné alebo medzikvartálne porovnanie, a vyhodnotiť, ako sa vyvíja daný ukazovateľ? Či nebodaj porovnať aktuálny stav voči plánu? Tu začnú veľmi tvorivé riešenia, a prvé zaseknutia sa na pár hodín. Pretože DAX nepracuje s bunkami v tabuľke, ani s pomenovanými oblasťami či maticami, ale s hodnotami, stĺpcami a tabuľkami. A funkcie DAX-u môžu brať tieto veci na vstupe, aj vracať na výstupe. A to nehovorím ešte o kontexte výpočtu a manipulácii s ním. Pre neznalého peklo a dôvod k návratu k excelovským makrám. A zbytočne zabitý kopec času. Pritom stačilo nájsť niekoho, kto vám vysvetlí, ako to funguje, a takéto porovnávačky by ste mali hotové za pár minút.

Chyba č. 3 – dám to dokopy, a uvidím či to zafunguje

Dôsledok predchádzajúceho bodu. Keď niečo nezafunguje, alebo neviete ako to máte napísať, tak prirodzený postup je začať hľadať, ako na to. A začnete hľadať na Googli, narazíte na nejaký blog (napr. aj na tento, hehe), a nájdete tam vzorec, ktorý vyzerá byť použiteľný. Potiaľto fajn, aj ja som takto začínal pred 9 rokmi. Tento vzorec následne skopírujete do svojho dátového modelu, zmeníte názvy polí na svoje polia, a netrpezlivo čakáte na výsledok rulety. Niekedy to zafunguje, niekedy nie. Tí trpezlivejší hľadajú a skúšajú ďalej, prípadne sa skúsia spýtať niekoho naokolo. S prižmúrením oka tiež fajn. Problém s tým je však to, že či už to funguje alebo nefunguje, tak neviete prečo to tak je. A ak to náhodou aj zafungovalo, tak sa môže stať, že to neskôr prestane fungovať, keď niečo zmeníte v kontingenčke alebo reporte. Kľudne aj takú jednoduchú vec ako filter alebo polia v riadkoch/stĺpcoch kontingenčky. A hľadanie svätého grálu začína znova. Z tohto sa dá dostať jedine tak, že si pozriete na danom blogu/webe, prečo to funguje tak ako to funguje. Pri pokročilejších veciach si pravdepodobne budete musieť niečo ešte doštudovať v iných článkoch. Námaha sa vám ale neskôr vyplatí v tom, že časom budete presne vedieť, čo robíte, a aj odhadnúť úskalia riešenia do budúcnosti. Vyžaduje to ale veľa štúdia, skúšania a trpezlivosti.

Chyba č. 4 – natlačím to všetko do jednej tabuľky

Zlozvyk z excelovských kontingenčiek, ktoré ste vedeli spraviť len z jednej megatabuľky na niektorom z hárkov, teda ak ste nepoužili PowerPivot (v niektorých Exceloch zamaskovaný pod názvom “dátový model”). Toto riešenie je fajn, ak nepotrebujete porovnávať dáta z viacerých zdrojov, či napr. aktuálny stav voči plánu. Ak však potrebujete, tak veľmi rýchlo narazíte. Alebo vytvoríte obludu s veľmi veľa stĺpcami, ktorá sa vám bude ťažko vytvárať, a o to ťažšie spravovať. Agóniu dokáže predĺžiť aj použitie Power Query, vďaka ktorému sa dá čarovať aj s kadečím šialeným, a odsúvať nevyhnutné na neskôr. Nehovoriac o masochizmoch ako virtuálne prepojenia či iné zbytočne komplikované konštrukty v jazyku DAX. Takýmto prístupom však časom zistíte, že vám to isté trvá spraviť dlhšie ako v Exceli. Pritom by stačilo, aby vám niekto vysvetlil, ako správne štruktúrovať dátový model. Napr. ako v mojej knihe o Power BI a PowerPivote.

Chyba č. 5 – napíšem to jedným vzorcom

Najlepšia technika na masáž svojho ega, s okamžitými výsledkami. Používaná často na indických blogoch, alebo na blogoch, kde autori chcú navodiť dojem, že sú guruovia, keď na vás vypľujú 3-stranový vzorec. Aj keď to síce funguje, tak to má jeden zásadný problém – spravovateľnosť, rozširovateľnosť, a znovuvyužiteľnosť vzorcov je blízka nule. Platí totiž zásada, že čím niečo spravíte komplikovanejšie, tak tým horšie sa vám to bude do budúcnosti spravovať. Keď sa totižto vrátite k veľkému obludnému vzorcu cez 3 strany už len po mesiaci s tým, že tam niečo nefunguje, alebo že to potrebujete zmeniť, tak strávite pol dňa dešifrovaním tej obludy – aj to v tom lepšom prípade. A ani potom nie je zaručené, že si budete vedieť rýchlo premyslieť, čo v ňom treba zmeniť. Náš mozog má totižto veľmi obmedzenú kapacitu v tom, čo dokáže spracovať vo vedomej pamäti, a môžete trénovať koľko chcete, ale moc s tým nepohnete. Preto je lepšie komplikovanejšie vzorce rozdeliť na viac samostatných vzorcov – podľa situácie do viacerých vypočítaných stĺpcov, merítok, alebo presunúť do premenných v rámci toho istého vzorca. PowerPivotu ani Power BI to nevadí – na pozadí beží SSAS Tabular, ktorý si to zhrnie všetko do jedného vzorca, a dokonca ešte aj zoptimalizuje, ak sa to dá. Takže v rýchlosti jedného megavzorca vs. 10 čiastkových vzorcov zvyčajne neuvidíte žiadny rozdiel. Budete ale odmenení lepšou spravovateľnosťou modelu (v jednoduchších čiastkových vzorcoch sa robia zmeny ľahšie a rýchlejšie), lepšou rozširovateľnosťou a znovuvyužiteľnosťou vzorcov v ďalších výpočtoch. A vyššou produktivitou do budúcnosti.

A ako z toho von?

Naučte sa to metodicky a štruktúrovane, napr. podľa nejakej knihy, na nejakom školení, alebo priamo s konkrétnym expertom. Do úvahy zoberte aj jeho prax a referencie. Ide o to, že ten, kto to nielen pozná, ale to aj vie naučiť, vám to vysvetlí polopate, a naučí vás v tom jazyku aj rozmýšľať. Pretože vie presne, ako to celé funguje, ako rozmýšľajú ľudia pri prechode z Excelu a podobných aplikácií, ako to celé stavať, a najmä na čo si dať do budúcnosti pozor. Ak by sa vám to zdalo drahé, tak zoberte do úvahy, koľko týždňov by ste sa museli s tým trápiť sami, a koľko to stojí firmu – v porovnaním s tým, ako keby ste si kúpili knihu či išli na školenie. A ak nerobíte zrovna na niektorej bavlníkovej plantáži v Bangladéši, tak vám garantujem, že to bude vysoko presahovať cenu školenia. Teraz rozmýšľam, či v tomto článku propagovať moje školenia alebo nie…ale však už viete sami, že sú top. A ak ste na nich neboli, tak ich rozhodne odporúčam. Pretože po tých niekoľkých tisíckach ľudí, čo som už odškolil, viem, ako to naučiť čo najrýchlejšie a najpraktickejšie. Každopádne, či už pôjdete ku mne alebo ku niekomu inému, tak sa vám to oplatí, za predpokladu že vás to daná osoba dokáže naučiť. Pretože vám tým ušetrí kopec času a trápenia, vašej firme kopec peňazí, a ešte sa toho kopec naučíte. A ako vravia v teleshoppingu – “to sa oplatí” 🙂