Формула Excel: Отримати останній робочий день у місяці -

Зміст

Загальна формула

=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 від Баррі Гудіні.

Хороші посилання

Відповідь Баррі Гудіні на форумі MrExcel

Цікаві статті...