článek

Efektivní nástroje pro samoobslužné zpracování dat v prostředí controllingu

Není tak dávno období, kdy se většina agendy controllingových týmů realizovala v rámci excelových tabulek, které se krmily různými manuálními exporty z ERP systémů. Pokročilejší uživatelé si pomáhali makry, ale ruku na srdce, nekonečné sítě prolinkovaných excelů byly úkazem velmi běžným a troufám si říct, že stále ještě jsou. Komplikovanější výpočty končily jako nečitelné vzorce na několik řádků, mnohokrát vložené rozhodovací podmínky apod. Pro větší analýzy pak bylo nutné požádat někoho z IT o přípravu speciálního reportu nebo datové sady. Ta opět končila v excelu někde na sdíleném disku.

Od spreadsheetu k programování

V posledních letech došlo v oblasti zpracování dat a reportingu k rychlému posunu. Objevily se moderní self-service BI nástroje, jako je Power BI nebo Tableau. Ty spolu přinesly pokročilé možnosti napojení na datové zdroje, možnosti transformací a úprav dat, a hlavně přitažlivou možnost vizualizace a prezentace výstupů.

Co opravdu významně posouvá možnosti zpracování dat jsou moderní programovací jazyky, jako je R a Python. Jedná se o open source nástroje s obrovskou komunitou uživatelů a vývojářů. Desítky knihoven se nabízí pro různá použití od statistiky, všechna myslitelná zpracování dat, machine learning a dokonce vizualizaci. Jazyky zvládají napojení na rozličné datové zdroje jako např. SQL databáze, csv textové soubory, excelové sešit atd. Stejně tak výstupy umí ukládat do nepřeberného množství formátů.

Získávejme data efektivně, ušetříme si nervy i práci

Pojďme se nyní podívat na fiktivního analytika Honzu, který přicestoval v čase z doby řekněme před 10 lety. Náš analytik z minulosti Honza přichází do práce, nese si svůj notebook, nikoliv nepodobný dnešním. Má podobný úkol jako jeho kolega v přítomnosti, Petr. Oba stojí před často zadávaným úkolem – připravit pokročilou analýzu zákaznických výnosů, obohacenou o přiřazené další položky jako alokované náklady, marže, informace o regionech, obchodnících atd. Data leží částečně v datovém skladu, částečně pak jako výstupy v jiných excelových analýzách. Honza začíná tím, že posílá ticket na IT, aby mu připravili výjezd dat podle specifikace.

Bohužel Honza netrefí zadání hned napoprvé přesně, a tak se k datům dostává až po několikátém upřesnění. Datový výstup se nevejde kvůli počtu řádků do excelu, tak žádá ještě o rozdělení na několik částí. Jen získat data mu bude trvat několik dní.

Petr naproti tomu startuje svůj Jupyter Notebook, což je výkonná platforma programovacího jazyka kombinovaná s poznámkami a výstupními bloky. Petr ovládá jazyk Python, který mu pomůže se zpracováním dat. Následně v datovém katalogu dohledává nutné tabulky a pole a pomocí SQL studia si postupně připravuje query. Také to nemá napoprvé dobře, ale iterace jsou pouze na něm, takže velmi rychle umí vyladit SQL dotaz podle potřeby. Takto připravený dotaz vkládá do jednoho z bloků v Jupyteru.

Chytré zpracování dat je efektivní a zmenšuje prostor pro chyby

Honza zjišťuje, že mít data na více listech nebo nedej bože ve více excelových souborech je pro analýzu velmi nepraktické, tak pomoci kontingenčních tabulek data agreguje na menší detail a výstupy ručně po jednom vkládá do nového excelového souboru.

Petrovi po několika minutách dojíždí v Jupyteru script. Pomocí knihovny Pandas tvoří v paměti počítače tabulku (dataframe) o délce několika milionů záznamů. V excelu nemožné, pro Python maličkost. Rovnou si v Jupyteru přidává další bloky pro kontrolu, např. sumy po letech/měsících, náhled na prvních několik řádků a také základní analýzu datové kvality. Python mu umožňuje velmi rychle se podívat na datové typy v tabulce, rozložení hodnot, zkontrolovat prázdné řádky nebo záznamy apod. Petr by mohl nasadit také pokročilejší techniky, jako je detekce anomálií pomocí machine learningu. Python je k tomu jako stvořený a na webu je plno návodů a informací z komunity uživatelů.

Honza připojuje ke svému excelu další tabulky a pomocí lookup vzorců dotahuje další informace. Je to zdlouhavá práce, protože některé vazby jsou na úrovni zákazníka, některé na úrovni smlouvy, a tak si opět musí pomoci dalšími kontingenčními tabulkami a manuální práce narůstá. Honza už se oprávněně začíná obávat možné chyby.

Petr jednoduchými příkazy v programovém scriptu natahuje doplňkové excelové číselníky a data do dalších bloků v Jupyteru a jednoduchými příkazy data spojuje. Po cestě si vkládá kontrolní bloky, takže stále má na očích kontrolní součty a ví, že se mu nic neztrácí.

Honzův excel už má několik desítek megabytů a počet vzorců narůstá. Honza proto vypíná automatické kalkulace a pracuje tak trochu naslepo.

Petr je stále v prostředí Jupyter notebooku a veškerá data jsou v paměti počítače.

Honza dokončil zpracování dat a výsledek si ukládá do nového čistého excelu, kde se hodlá nyní věnovat přípravě grafického výstupu.

Petr dává Pythonu pokyn výstupní tabulku uložit do databáze SQL serveru.

Moderní prezentační nástroje umožňují komunikovat velkém množství informací

Na grafy se Honza těší, to už je ta třešnička na dortu a tam se může vyřádit. Byl na excel školení, takže umí několik triků. Musí jen dát pozor na správné nastavení filtrů. Pak si vyhraje s umístěním grafů na stránce pro tisk, protože výstup chce mít hezky v PDF.

Petr si spouští aplikaci Power BI desktop. Jako datový zdroj volí SQL server a napojuje se na tabulku, kterou mu tam Python script vytvořil. Tabulka má miliony záznamů, je v plném detailu, díky výkonu systému nebylo nutné agregovat. Data jsou během pár okamžiků v PBI a Petr začíná designovat stránky reportu. Už má přednastavené korporátní barvy, tak se nemusí tolik věnovat designu. Výstup celé analýzy se snaží Petr dát na co nejméně listů – pomocí interaktivních prvků a filtrů si pak uživatel sám bude volit pohledy, jaké potřebuje. Petr ovládá jazyk DAX, který mu umožňuje vytvořit užitečné vzorce např. pro meziroční porovnání, YTD a MTD pohledy, absolutní a relativní odchylky atd. Na co se těší nejvíc, jsou vizualizace. Power BI obsahuje již jako takové působivý seznam grafů, tabulek a indikátorů připravených k použití. A možnost doinstalovat tzv. custom visuals otvírá další možnosti. Petr volí vhodné grafy a tabulky, nastavuje podmíněné formáty a na plochu umísťuje hlavní přepínače a filtry.

Honza exportuje do PDF a posílá výstupy emailem.

Petr publikuje svůj report na Power BI Cloud Service. Zde ještě kontroluje report, upravuje jeho mobilní rozložení (ano, PBI reporty máme už i v mobilní aplikaci) a nastavuje sdílení a práva.

Efektivita je přímo spojena se systematičností procesů

Jak už to tak bývá, po odeslání výstupu přichází doplnění zadání na rozšíření analýzy o delší časový horizont. Honza propadá panice a volá na IT, aby mu poslali další výjezdy s historickými daty. Už teď vidí, že bude muset znovu podstoupit svoji excelovou anabázi se zpracováním dat. Defacto to pro něj znamená celou práci znovu, protože datové zdroje měl statické a nedostatečně propojené. Mezikroky musí všechny udělat znovu.

Petr oproti tomu otevírá svůj Jupyter notebook, mění jeden parametr v podmínce vstupního SQL dotazu a spouští script. Během několika málo minut je hotovo, celá pipeline – proces v rámci scriptu, všechny úpravy už běží a automaticky se aplikují na nová vstupní data. Výsledek se ukládá na SQL server. V Power BI pak už jen stačí stisknout tlačítko refresh a do všech vizuálů se dostanou nová rozšířená data.

Závěr

Na příběhu Honzy a Petra jsem se snažil ukázat, jaké pokročilé možnosti nyní nabízí moderní samoobslužné BI nástroje. Příběh je záměrně přehnaný a Honza udělal řadu věcí špatně. Co je důležité zdůraznit, že to není jen o nových nástrojích, ale také o mind setu, o přístupu k práci takovém, aby postupy byly reprodukovatelné, auditovatelné, modifikovatelné a samo dokumentující se. Aby s malou námahou bylo možné proces modifikovat a přepoužít. Je důležité při jakékoliv práci se zamýšlet, jakou optimalizaci udělat. Jak si práci zjednodušit pro příště. Co když budu nucen analýzu za měsíc opakovat? Co když se změní zadání? Co když se rozšíří o další dimenzi? Jsou to možná někdy jen minuty, ale v kontextu korporací to v součtu dělá hodně. Věřím, že tyto postupy jsou správnou cestou k zefektivňování. Nejde o to, aby stroje nahradily lidi, ale aby lidé měli čas na práci kreativní a s přidanou hodnotou.

Kopírování dat ručně z jedné tabulky do druhé nechme i s Honzou historii.

 

 

 

Ing. Milan Mityska

Milan spojil svoji kariéru se společností T-Mobile ČR, která je nyní řízena společně se sesterskou společností Slovak Telekom. Ve společnosti působí od roku 2005, kam přišel po dvouleté zkušenosti z auditu ve společnosti KPMG. V T-Mobile prošel několika týmy v rámci financí a controllingu. Aktuálně vede federální tým Controlling Systems. Společně s týmem se věnuje především transformačním aktivitám, zefektivňování controllingových a reportingových procesů a nově také oblasti Data Governance. Spojuje finanční a IT know-how v oblastech zpracování dat a reportingu s moderními BI nástroji od SQL, přes efektivní zpracování dat pomocí Python scriptů až po přípravu prezentační vrstvy v Power BI.

Další zprávy z této kategorie