
Обща формула
=EOMONTH(date,0)+1-WEEKDAY(EOMONTH(date,0)+1-dow)
Обобщение
За да получите последния делничен ден от месеца (т.е. последната събота, последния петък, последния понеделник и т.н.), можете да използвате формула, базирана на функциите EOMONTH и WEEKDAY.
В показания пример формулата в D5 е:
=EOMONTH(B5,0)+1-WEEKDAY(EOMONTH(B5,0)+1-C5)
Обяснение
Първо, тази формула определя първия ден от следващия месец * след * определена дата. Това прави това, като използвам EOMONTH, за да получа последния ден от месеца, след което добавя един ден:
=EOMONTH(B5,0)+1
След това формулата изчислява броя на дните, необходими за „връщане назад“ към последния поискан делничен ден в предходния месец (т.е. месеца на първоначалната дата):
WEEKDAY(EOMONTH(B5,0)+1-C5)
В рамките на WEEKDAY EOMONTH отново се използва за получаване на първия ден от следващия месец. От тази дата стойността за ден от седмицата се изважда и резултатът се подава в WEEKDAY, който връща броя дни за връщане назад.
И накрая, дните за връщане назад се изваждат от първия ден на следващия месец, което дава крайния резултат.
Други делнични дни
В общата форма на формулата в горната част на страницата денят от седмицата е съкратен "dow". Това е число между 1 (неделя) и 7 (събота), което може да се промени, за да се получи различен ден от седмицата. Например, за да получите последния четвъртък на месеца, задайте dow на 5.
Забележка: Натъкнах се на тази формула в отговор на форума MrExcel от Бари Худини.