PowerPivot aj Power BI viete využiť na analýzu všetkého možného. Dokonca aj na analýzu odpracovaného času z dochádzkových záznamov. Problém však nastáva v tom, keď chcete zobraziť odpracovaný čas, čiže počet odpracovaných hodín a minút, do finálneho výstupu, napr. ako 172:30 hod.. Preto sa na to teraz pozrieme.
Povedzme, že máme na vstupe takúto tabuľku, kde už je spočítaný odpracovaný čas za jednotlivé dni a osoby:
Tam vidíte, že máme pre dané dni ku každému zamestnancovi, ktorý v daný deň pracoval, zaznamenaný osobitne počet odpracovaných hodín a minút. A teraz by sme to chceli zosumovať pre všetkých zamestnancov, a zobraziť, koľko kto odpracoval.
Problém je však v tom, že na rozdiel od Excelu, PowerPivot ani Power BI nepoznajú formát času typu „[hh]:mm“, čiže zobrazenie viac ako 24 hodín pri čase. Preto si budeme musieť pomôcť inak. Našťastie to ani veľmi nebude bolieť.
Začneme klasicky tým, že si tieto dáta naimportujeme do dátového modelu, do tabuľky s názvom Záznamy.
Potom si vytvoríme nové merítko, ktoré nám bude spočítavať počet odpracovaných hodín, zo stĺpca s hodinami aj zo stĺpca s minútami:
Počet hodín a minút = SUM(‚Záznamy'[Hodiny]) + ( SUM(‚Záznamy'[Minúty]) / 60)
Tam vidíte, že si počet hodín jednoducho zosumujeme. A prirátame k tomu sumu minút predelenú 60-timi, aby sme k tomu prirátali 1 hodinu za každých 60 minút, a zvyšné minúty ako zlomok z hodiny. Keď teraz dáme do kontingenčky toto merítko do oblasti hodnôt, a do riadkov dáme meno zamestnanca, tak to bude vyzerať takto:
Matematicky to je správne, a teraz to už iba zobraziť vo formáte „[hh]:mm“, čiže ako celkový čas v hodinách a minútach, ktorý samozrejme môže presiahnuť 24 hodín. To spravíme pomocou ďalšieho merítka, kde hodnotu z merítka vyššie naformátujeme cez funkciu FORMAT:
Odpracovaný čas = INT ( [Počet hodín a minút] ) & ":" & FORMAT ( ( [Počet hodín a minút] - INT ( [Počet hodín a minút] ) ) * 60; "00" )
…alebo vypeknené cez DAX Formatter takto:
A po pridaní do kontingenčky to bude vyzerať takto:
V tomto merítku sme použili funkciu INT, aby sme zistili počet celých hodín (bez desatinnej čiarky). K tomu sme prilepili dvojbodku, a za to sme prilepili počet minút, naformátovaných na 2 číslice, pomocou funkcie FORMAT. Do jej prvého parametra sme vypočítali počet minút tak, že sme z toho prvého merítka najprv odpočítali počet celých hodín. A potom zvyšok vynásobili 60-kou. V tom prvom merítku sme totiž minúty prekonvertovali na zlomok „minúty/60“, aby sme zistili aj počet celých hodín z tých minút. A zvyšok sme uložili ako zlomok z hodiny. Preto sme teraz ten zvyšok potrebovali prenásobiť naspäť 60-kou.
Takto jednoducho teda viete zobraziť aj čas vo viac ako 24-hodinovom formáte. Ktorý sa bežne používa vtedy, keď chceme zobraziť odpracovaný čas vo všetkých reportoch. A ako všetko ostatné, aj toto išlo spraviť aj napriek tomu, že to priamo nie je podporované. Pretože kde je vôľa, tam je cesta 🙂
Autor, tréner a expert na PowerPivot, Power BI a jazyk DAX. Založil som tento web, aby som pomohol dostať PowerPivot a Power BI do širšieho povedomia, a aby som ľuďom ukázal, že aj komplexné analytické problémy idú riešiť jednoducho. Po nociach vzývam Majstra Yodu a tajne plánujem ovládnutie vesmíru.