Оглавление
Если вы ищете функцию Excel для получения дня недели из даты, вы попали на нужную страницу. Это руководство научит вас использовать формулу WEEKDAY в Excel для преобразования даты в название дня недели, фильтрации, выделения и подсчета выходных или рабочих дней, а также многому другому.
В Excel существует множество функций для работы с датами. Функция дня недели (WEEKDAY) особенно полезна для планирования и составления графиков, например, для определения временных рамок проекта и автоматического удаления выходных дней из общей суммы. Итак, давайте пробежимся по примерам один за другим и посмотрим, как они могут помочь вам справиться с различными задачами, связанными с датами в Excel.
WEEKDAY - функция Excel для дня недели
Функция Excel WEEKDAY используется для возврата дня недели из заданной даты.
Результатом будет целое число, по умолчанию от 1 (воскресенье) до 7 (суббота). Если ваша бизнес-логика требует другого перечисления, вы можете настроить формулу так, чтобы она начинала отсчет с любого другого дня недели.
Функция WEEKDAY доступна во всех версиях Excel 365 до 2000.
Синтаксис функции WEEKDAY следующий:
WEEKDAY(serial_number, [return_type])Где:
Серийный_номер (обязательно) - дата, которую вы хотите преобразовать в номер дня недели. Она может быть предоставлена в виде порядкового номера, представляющего дату, в виде текстовой строки в формате, который понимает Excel, в виде ссылки на ячейку, содержащую дату, или с помощью функции DATE.
Тип_возврата (необязательно) - определяет, какой день недели использовать в качестве первого дня. Если не указано, по умолчанию используется неделя Солнце-Сб.
Ниже приведен список всех поддерживаемых тип_возврата значения:
Тип_возврата | Количество возвращенных |
---|---|
1 или опущен | С 1 (воскресенье) до 7 (суббота) |
2 | С 1 (понедельник) до 7 (воскресенье) |
3 | С 0 (понедельник) до 6 (воскресенье) |
11 | С 1 (понедельник) до 7 (воскресенье) |
12 | С 1 (вторник) до 7 (понедельник) |
13 | С 1 (среда) до 7 (вторник) |
14 | С 1 (четверг) до 7 (среда) |
15 | С 1 (пятница) до 7 (четверг) |
16 | С 1 (суббота) до 7 (пятница) |
17 | С 1 (воскресенье) до 7 (суббота) |
Примечание. тип_возврата Значения с 11 по 17 были введены в Excel 2010, поэтому их нельзя использовать в более ранних версиях.
Основная формула WEEKDAY в Excel
Для начала давайте посмотрим, как использовать формулу WEEKDAY в ее простейшей форме, чтобы получить номер дня из даты.
Например, чтобы получить день недели из даты в C4 с неделей по умолчанию с воскресенья по субботу, формула имеет следующий вид:
=WEEKDAY(C4)
Если у вас есть порядковый номер, представляющий дату (например, полученный с помощью функции DATEVALUE), вы можете ввести этот номер непосредственно в формулу:
=WEEKDAY(45658)
Также вы можете ввести дату в виде текстовой строки, заключенной в кавычки, непосредственно в формуле. Только не забудьте использовать формат даты, который Excel ожидает и может интерпретировать:
=WEEKDAY("1/1/2025")
Или же предоставьте исходную дату на 100% надежным способом, используя функцию DATE:
=WEEKDAY(DATE(2025, 1,1))
Чтобы использовать сопоставление дней, отличное от принятого по умолчанию Солнце-Суббота, введите соответствующее число во втором аргументе. Например, чтобы начать отсчет дней с понедельника, формула имеет следующий вид:
=WEEKDAY(C4, 2)
На рисунке ниже все формулы возвращают день недели, соответствующий 1 января 2025 года, который внутри Excel хранится как число 45658. В зависимости от значения, заданного во втором аргументе, формулы выдают разные результаты.
На первый взгляд может показаться, что числа, возвращаемые функцией WEEKDAY, имеют очень мало практического смысла. Но давайте посмотрим на это под другим углом и обсудим некоторые формулы, которые решают реальные задачи.
Как преобразовать дату Excel в название дня недели
По своей конструкции функция Excel WEEKDAY возвращает день недели в виде числа. Чтобы превратить число дня недели в название дня, используйте функцию TEXT.
Чтобы получить названия полного дня , используйте код формата "dddd":
TEXT(WEEKDAY( дата ), "dddd")Вернуться сокращенные названия дней , код формата - "ddd":
TEXT(WEEKDAY( дата ), "ddd")Например, чтобы преобразовать дату в A3 в название дня недели, используется формула:
=TEXT(WEEKDAY(A3), "dddd")
Или
=TEXT(WEEKDAY(A3), "ddd")
Другим возможным решением является использование WEEKDAY вместе с функцией CHOOSE.
Например, чтобы получить сокращенное название дня недели из даты в A3, формула выглядит следующим образом:
=CHOOSE(WEEKDAY(A3), "Sun", "Mon", "Tus", "Wed", "Thu", "Fri", "Sat")
Здесь WEEKDAY возвращает порядковый номер от 1 (Sun) до 7 (Sat), а CHOOSE выбирает соответствующее значение из списка. Поскольку дата в A3 (Wednesday) соответствует 4, CHOOSE выводит "Wed", которое является 4-м значением в списке.
Хотя формула CHOOSE немного сложнее в настройке, она обеспечивает большую гибкость, позволяя выводить названия дней в любом формате. В приведенном выше примере мы показываем сокращенные названия дней. Вместо этого вы можете выводить полные названия, пользовательские сокращения или даже названия дней на другом языке.
Совет. Еще один простой способ преобразования даты в название дня недели - применение пользовательского формата даты. Например, при использовании формата кода "дддд, мммм дд, гггг" дата будет отображаться как " Пятница, 3 января 2025 года ", в то время как "dddd" покажет просто " Пятница ".
Формула Excel WEEKDAY для поиска и фильтрации рабочих и выходных дней
При работе с длинным списком дат вы можете захотеть узнать, какие из них являются рабочими днями, а какие - выходными.
На определить выходные и будние дни в Excel постройте оператор IF с вложенной функцией WEEKDAY. Например:
=IF(WEEKDAY(A3, 2)<6, "Рабочий день", "Выходной")
Эта формула помещается в ячейку A3 и копируется вниз на столько ячеек, сколько необходимо.
В формуле WEEKDAY вы задаете тип_возврата до 2, что соответствует неделе Mon-Sun, где понедельник - день 1. Таким образом, если номер дня недели меньше 6 (с понедельника по пятницу), формула возвращает "Рабочий день", иначе - "Выходной".
На фильтровать выходные или рабочие дни , примените фильтр Excel к набору данных ( Данные вкладка> Фильтр ) и выберите "Выходной" или "Рабочий день".
На скриншоте ниже мы отфильтровали дни недели, поэтому видны только выходные:
Если какой-то региональный офис вашей организации работает по другому графику, где выходные дни не суббота и воскресенье, вы можете легко адаптировать формулу WEEKDAY к своим потребностям, указав другое значение тип_возврата .
Например, для лечения Суббота и Понедельник как выходные, установите тип_возврата до 12, то вы получите тип недели "вторник (1) - понедельник (7)":
=IF(WEEKDAY(A2, 12)<6, "Рабочий день", "Выходной")
Как выделить выходные рабочие дни и в Excel
Чтобы с первого взгляда определить выходные и рабочие дни в рабочем листе, можно автоматически затенять их разными цветами. Для этого используйте формулу будни/выходные, рассмотренную в предыдущем примере, с условным форматированием Excel. Поскольку условие подразумевается, нам нужна только основная функция WEEKDAY без обертки IF.
На яркие выходные дни (суббота и воскресенье):
=WEEKDAY($A2, 2)<6
На выделять рабочие дни (понедельник - пятница):
=WEEKDAY($A2, 2)>5
Где A2 - левая верхняя ячейка выбранного диапазона.
Чтобы настроить правило условного форматирования, выполните следующие действия:
- Выберите список дат (в нашем случае A2:A15).
- На Главная во вкладке Стили группу, нажмите Условное форматирование > Новое правило .
- В Новое правило форматирования в диалоговом окне выберите Используйте формулу, чтобы определить, какие ячейки форматировать .
- В Форматируйте значения, когда эта формула поле true, введите вышеупомянутую формулу для выходных или будних дней.
- Нажмите кнопку Формат и выберите нужный формат.
- Нажмите OK дважды, чтобы сохранить изменения и закрыть диалоговые окна.
Подробную информацию о каждом шаге можно найти в разделе Как настроить условное форматирование с помощью формулы.
Результат выглядит довольно красиво, не так ли?
Как считать будние и выходные дни в Excel
Чтобы получить количество будних или выходных дней в списке дат, можно использовать функцию WEEKDAY в сочетании с SUM. Например:
На считать выходные дни формула в D3:
=SUM(--(WEEKDAY(A3:A20, 2)>5))
На считать дни недели формула в D4 принимает такой вид:
=SUM(--(WEEKDAY(A3:A20, 2)<6))
В Excel 365 и Excel 2021, которые работают с массивами нативно, это работает как обычная формула, как показано на скриншоте ниже. В Excel 2019 и более ранних версиях, нажмите Ctrl + Shift + Enter, чтобы сделать это формулой массива.
Как работают эти формулы:
Функция WEEKDAY с тип_возврата set to 2 возвращает номер дня от 1 (Mon) до 7 (Sun) для каждой даты в диапазоне A3:A20. Логическое выражение проверяет, являются ли возвращаемые числа больше 5 (для выходных дней) или меньше 6 (для будних дней). Результатом этой операции является массив значений TRUE и FALSE.
Двойное отрицание (--) превращает логические значения в 1 и 0. А функция SUM складывает их. Учитывая, что 1 (TRUE) представляет дни, которые нужно подсчитать, а 0 (FALSE) - дни, которые нужно игнорировать, вы получите желаемый результат.
Совет. Чтобы рассчитать будние дни между двумя датами , используйте функцию NETWORKDAYS или NETWORKDAYS.INTL.
Если будний день, то, если суббота или воскресенье, то
Наконец, давайте обсудим более конкретный случай, который показывает, как определить день недели, и если это суббота или воскресенье, то сделать что-то, если будний день, то сделать что-то другое.
IF(WEEKDAY( ячейка , 2)>5, если_выходной_день , если_недельный_день )Предположим, что вы рассчитываете выплаты для сотрудников, которые выполнили дополнительную работу в свой выходной день, поэтому вам нужно применить разные ставки выплат для рабочих и выходных дней. Это можно сделать с помощью следующего оператора IF:
- В логический_тест аргумент, вложить функцию WEEKDAY, которая проверяет, является ли данный день рабочим или выходным.
- В значение_если_истина аргумент, умножьте количество рабочих часов на ставку выходного дня (G4).
- В значение_если_ложно аргумент, умножьте количество рабочих часов на норму рабочего дня (G3).
Полная формула в D3 имеет такой вид:
=IF(WEEKDAY(B3, 2)>5, C3*$G$4, C3*$G$3)
Чтобы формула правильно скопировалась в нижележащие ячейки, убедитесь, что адреса ячеек курса закрыты знаком $ (например, $G$4).
Функция WEEKDAY не работает
Как правило, есть две распространенные ошибки, которые может выдать формула WEEKDAY:
#VALUE! Ошибка возникает, если либо:
- Серийный_номер или тип_возврата не является числовым.
- Серийный_номер находится вне поддерживаемого диапазона дат (от 1900 до 9999).
Ошибка #NUM! возникает, когда тип_возврата находится вне допустимого диапазона (1-3 или 11-17).
Вот как использовать функцию WEEKDAY в Excel для работы с днями недели. В следующей статье мы рассмотрим функции Excel для работы с большими единицами времени, такими как недели, месяцы и годы. Пожалуйста, следите за новостями и спасибо за чтение!
Рабочая тетрадь для тренировок для скачивания
Формула WEEKDAY в Excel - примеры (файл.xlsx)