
Všeobecný vzorec
=EOMONTH(date,0)+1-WEEKDAY(EOMONTH(date,0)+1-dow)
Zhrnutie
Ak chcete získať posledný pracovný deň v mesiaci (tj. Poslednú sobotu, posledný piatok, posledný pondelok atď.), Môžete použiť vzorec založený na funkciách EOMONTH a WEEKDAY.
V zobrazenom príklade je vzorec v D5:
=EOMONTH(B5,0)+1-WEEKDAY(EOMONTH(B5,0)+1-C5)
Vysvetlenie
Po prvé, tento vzorec určuje prvý deň nasledujúceho mesiaca * po * danom dátume. Robí to pomocou príkazu EOMONTH na získanie posledného dňa v mesiaci a potom pridaním jedného dňa:
=EOMONTH(B5,0)+1
Ďalej vzorec počíta počet dní potrebných na „vrátenie sa“ k poslednému požadovanému všednému dňu v predchádzajúcom mesiaci (tj. Mesiac pôvodného dátumu):
WEEKDAY(EOMONTH(B5,0)+1-C5)
V WEEKDAY sa EOMONTH opäť používa na získanie prvého dňa nasledujúceho mesiaca. Od tohto dátumu sa odpočíta hodnota pre deň v týždni a výsledok sa započíta do WEEKDAY, ktorý vráti počet dní na vrátenie späť.
Napokon sa dni vrátenia späť odpočítajú od prvého dňa nasledujúceho mesiaca, čo prinesie konečný výsledok.
Ostatné pracovné dni
Vo všeobecnej forme vzorca v hornej časti stránky je deň v týždni skrátený ako „dow“. Toto je číslo medzi 1 (nedeľa) a 7 (sobota), ktoré je možné zmeniť, aby ste získali iný deň v týždni. Ak chcete napríklad získať posledný štvrtok v mesiaci, nastavte dow na 5.
Poznámka: Na tento vzorec som narazil v odpovedi na fóre MrExcel od Barryho Houdiniho.