Power Automate – počet pracovních dní v zadaném intervalu
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.
Autor: Martin Bradáč
Vypočítat rozdíl dvou kalendářních dní není žádný problém. Nejen v pracovním prostředí ale často potřebujeme zjistit, kolik pracovních dní je mezi dvěma dny. Power Automate bohužel nedisponuje žádnou funkcí jako Excel, musíme si tedy poradit sami. K eleganci má moje řešení trochu daleko, ale funguje.
Příkladem budiž formulář pro žádost o dovolenou. Vstupem je datum Od a Do. Potřebujeme zjistit, kolik pracovních dní se bude dovolená skutečně čerpat.
Nejde jen o víkendy, ale i o svátky.
Neobejdeme se bez proměnných.
Definujeme tedy proměnnou „seznamSvatku“ typ řetězec. Přímo v inicializaci můžeme vložit hodnoty oddělené čárkou. Bylo by také možné vytvořit textový soubor, kde by svátky byly vypsané.
Dále budeme potřebovat dvě textové proměnné „pomocnyDen“ a „pomomocnyDen2“. Oběma vložíme hodnotu z dynamického obsahu vstupního formuláře – Od. Ty využijeme v cyklu. Dvě proto, že PowerAutomate nezvládne provádět triviální operace známé z jiných prostředí – a=a+1.
Poslední proměnnou bude „pocetDni“ a bude typu Integer.
Tok spustíme na základě odeslaného formuláře a získáme odpovědi.
Nyní ale přijde na řadu cyklus Do until… s podmínkou, „pomocnyDen“ se shoduje s adddays(„Do“,1). Cyklus zajistí, že proběhne tolikrát, kolik je dní v intervalu Od Do.
Do cyklu vložíme podmínku IF „seznamSvatku“ obsahuje „pomocnyDen“.
Pokud Ano, neprovede se žádná akce – není třeba, je to svátek a ten nepočítáme.
Pokud Ne, zapne se další podmínka, která zjistí, jestli je zadaný den víkendem. Pokud ano, opět nic nepočítáme. Pokud Ne, zvýšíme hodnotu proměnné „pocetDni“ o 1.
Dále zvedneme hodnotu „pomDat2“ pomocí funkce addDays o 1
Po skončení cyklu se napočítá tolik pracovních dní, kolik jich cyklus nenajde v tabulce svátků nebo nejsou víkendem.
Nevýhoda řešení je jasná – je třeba ručně nastavit tabulku svátků. Tu lze ale uložit do souboru a průběžně aktualizovat.
Pokračování řešení nechám na vašich úvahách, ale nabízí se uložení do seznamu, schvalování, upozornění, záznam do kalendáře a podobně…
S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.