Формула 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, который возвращает количество дней для отката.

Наконец, дни отката вычитаются из первого дня следующего месяца, что дает окончательный результат.

Другие будни

В общей форме формулы вверху страницы день недели обозначается аббревиатурой «доу». Это число от 1 (воскресенье) до 7 (суббота), которое можно изменить, чтобы получить другой день недели. Например, чтобы получить последний четверг месяца, установите значение до 5.

Примечание: я столкнулся с этой формулой в ответе Барри Гудини на форуме MrExcel.

Хорошие ссылки

Ответ Барри Гудини на форуме MrExcel

Интересные статьи...