Работа с датами в Microsoft Excel — одна из самых востребованных задач при анализе данных, составлении отчетов или планировании. Часто пользователям требуется не только сама дата, но и конкретный день недели, чтобы автоматизировать расчеты, фильтровать данные или визуализировать временные ряды. Например, вы можете нуждаться в определении выходных дней для расчета рабочих часов, группировке продаж по дням недели или создании динамических графиков.
В этой статье мы разберем 5 проверенных способов извлечения дня недели из даты — от базовых функций до гибких формул с учетом языковых настроек и пользовательских форматов. Вы узнаете, как вернуть день недели в виде числа (где 1 = понедельник), текста ("понедельник"), сокращения ("пн") или даже на английском языке. А еще — как избежать типичных ошибок при работе с датами в разных версиях Excel.
Неважно, новичок вы или опытный пользователь: здесь найдется решение для любой задачи. Давайте начнем с самого простого!
1. Базовая функция ТЕКСТ: простой способ получить название дня
Если вам нужно быстро преобразовать дату в название дня недели (например, "понедельник" или "вторник"), функция ТЕКСТ — ваш лучший друг. Она не требует знания сложных формул и работает во всех версиях Excel, включая Excel 2010 и новее.
Синтаксис функции:
=ТЕКСТ(дата; "ДДДД")
Где ДДДД — формат отображения полного названия дня. Если нужно сокращение (например, "пн"), используйте "ДДД".
- 📅 Пример 1:
=ТЕКСТ(A1; "ДДДД")— вернет "среда" для даты в ячейке A1. - 🔤 Пример 2:
=ТЕКСТ(ДАТА(2026;5;15); "ДДД")— вернет "ср" для 15 мая 2026 года. - 🌍 Пример 3:
=ТЕКСТ(A1; "DDDD")— вернет день недели на английском (если у вас англоязычная версия Excel).
Обратите внимание: результат функции ТЕКСТ — это текст, а не число. Это значит, что вы не сможете использовать его в математических расчетах без дополнительных преобразований.
⚠️ Внимание: Если в ячейке с датой отображается число (например, 45467 вместо 15.05.2026), сначала преобразуйте его в формат даты с помощьюФормат ячеек → Дата. Иначе функцияТЕКСТвернет ошибку.
2. Функция ДЕНЬНЕД: числовое представление дня (1–7)
Когда требуется не текстовое название, а порядковый номер дня недели (где 1 = воскресенье, 2 = понедельник и т. д.), используйте функцию ДЕНЬНЕД. Это полезно для сортировки, условного форматирования или математических операций.
Базовый синтаксис:
=ДЕНЬНЕД(дата; [тип_возврата])
Параметр [тип_возврата] определяет, с какого дня начинается отсчет:
1или опущен — воскресенье = 1 (по умолчанию в Excel).2— понедельник = 1 (европейский стандарт).3— понедельник = 0, воскресенье = 6.
Примеры:
| Формула | Результат для 15.05.2026 (среда) | Пояснение |
|---|---|---|
=ДЕНЬНЕД(A1) |
4 | Воскресенье=1, среда=4 |
=ДЕНЬНЕД(A1; 2) |
3 | Понедельник=1, среда=3 |
=ДЕНЬНЕД(ДАТА(2026;5;15); 3) |
2 | Понедельник=0, среда=2 |
Критичный нюанс: в русских версиях Excel по умолчанию используется тип_возврата=1 (воскресенье=1), а в европейских — тип_возврата=2 (понедельник=1). Это может привести к ошибкам в расчетах, если не учесть региональные настройки.
Убедиться, что ячейка содержит дату, а не текст|Проверить региональные настройки Excel (Файл → Параметры → Язык)|Указать явный тип_возврата (2 для понедельника=1)|Протестировать формулу на известной дате (например, 15.05.2026 = среда)-->
3. Комбинация ДЕНЬНЕД + ВЫБОР: кастомные названия дней
Если стандартные функции не покрывают ваши нужды (например, вам нужны дни недели на другом языке или в нестандартном формате), соедините ДЕНЬНЕД с функцией ВЫБОР. Это позволит создать пользовательский список дней.
Пример формулы для русскоязычных сокращений:
=ВЫБОР(ДЕНЬНЕД(A1; 2); "пн"; "вт"; "ср"; "чт"; "пт"; "сб"; "вс")
Аналогично можно вернуть полные названия или даже эмодзи:
=ВЫБОР(ДЕНЬНЕД(A1; 2); "🌞 Понедельник"; "📅 Вторник"; "📊 Среда"; "📈 Четверг"; "🎉 Пятница"; "🛒 Суббота"; "🏖 Воскресенье")
Преимущества этого метода:
- 🎨 Гибкость: вы контролируете вывод (сокращения, полные названия, эмодзи, смешанные форматы).
- 🌐 Многозадачность: можно создать версии на разных языках в одной таблице.
- 🔄 Легко редактировать: достаточно изменить список в функции
ВЫБОР.
Недостаток: при изменении порядка дней в формуле (например, если вы ошиблись с воскресеньем) придется править все вручную. Чтобы избежать этого, используйте именованные диапазоны для списка дней.
=ИНДЕКС(Лист2!A$1:A$7; ДЕНЬНЕД(A1; 2)). Так вы сможете легко обновлять названия в одном месте.-->
4. Функция НОМНЕДЕЛИ: альтернатива для европейского стандарта
В европейских странах и некоторых бизнес-процессах принято считать понедельник первым днем недели. Для таких случаев в Excel есть функция НОМНЕДЕЛИ, которая возвращает номер недели в году, но её можно адаптировать для наших задач.
Однако более полезной будет комбинация ДЕНЬНЕД с параметром тип_возврата=2 (как в разделе 2). Если же вам нужна именно НОМНЕДЕЛИ для дополнительных расчетов, её синтаксис:
=НОМНЕДЕЛИ(дата; [тип_возврата])
Где [тип_возврата]:
1— неделя начинается с воскресенья (по умолчанию).2— неделя начинается с понедельника.
Пример использования для определения дня недели:
=МОД(ДЕНЬНЕД(A1; 2) - 1; 7) + 1
Эта формула преобразует номер дня (где понедельник=1) в циклический формат 1–7, что удобно для создания круговых диаграмм или фильтров.
⚠️ Внимание: ФункцияНОМНЕДЕЛИвозвращает номер недели в году (1–54), а не день недели. Для последнего используйтеДЕНЬНЕДс параметромтип_возврата=2.
5. Продвинутые формулы: учет праздников и рабочих дней
Иногда недостаточно просто вернуть день недели — нужно еще и учесть, является ли он рабочим или выходным. Например, для расчета сроков доставки или планирования задач. В этом поможет комбинация функций ДЕНЬНЕД, ЕСЛИ и ИЛИ.
Пример формулы для определения выходных (суббота и воскресенье):
=ЕСЛИ(ИЛИ(ДЕНЬНЕД(A1; 2) > 5); "Выходной"; "Рабочий день")
Для учета праздников (например, 1 января) добавьте проверку даты:
=ЕСЛИ(ИЛИ(ДЕНЬНЕД(A1; 2) > 5; A1=ДАТА(2026;1;1)); "Выходной"; "Рабочий день")
Чтобы автоматизировать процесс, создайте список праздников на отдельном листе (например, Праздники!A1:A10) и используйте функцию СЧЁТЕСЛИ:
=ЕСЛИ(ИЛИ(ДЕНЬНЕД(A1; 2) > 5; СЧЁТЕСЛИ(Праздники!A:A; A1) > 0); "Выходной"; "Рабочий день")
Для визуализации можно применить условное форматирование:
- Выделите диапазон с датами.
- Перейдите в
Главная → Условное форматирование → Создать правило. - Выберите "Использовать формулу" и введите:
=ИЛИ(ДЕНЬНЕД(A1;2)>5; СЧЁТЕСЛИ(Праздники!A:A; A1)>0) - Задайте формат (например, красный фон для выходных).
Как учитывать региональные праздники?
Создайте на отдельном листе таблицу с праздничными датами для каждого региона (столбец A — дата, столбец B — регион). Затем используйте формулу:
=ЕСЛИ(ИЛИ(ДЕНЬНЕД(A1;2)>5; СЧЁТЕСЛИМН(Праздники!A:A; A1; Праздники!B:B; "Москва")>0); "Выходной"; "Рабочий день")
Где "Москва" — название региона из ячейки или переменной.
6. Динамические массивы и LAMBDA: современные решения (Excel 365)
Если вы работаете в Excel 365 или Excel 2021, у вас есть доступ к динамическим массивам и функции LAMBDA. Эти инструменты позволяют создавать мгновенно обновляемые списки дней недели без ручного протягивания формул.
Пример: вернем список дней недели для диапазона дат A1:A10:
=ОБЪЕДИНИТЬ(ВЫБОР(ДЕНЬНЕД(A1:A10; 2); "Пн"; "Вт"; "Ср"; "Чт"; "Пт"; "Сб"; "Вс"))
Эта формула автоматически заполнит столбец сокращениями дней недели для каждой даты в диапазоне.
Для создания кастомной функции с помощью LAMBDA:
- Перейдите в
Формулы → Определить имя. - Введите имя, например
ДЕНЬ_НЕДЕЛИ_RU. - В поле "Диапазон" введите:
=LAMBDA(дата;ВЫБОР(ДЕНЬНЕД(дата; 2);
"Пн"; "Вт"; "Ср"; "Чт"; "Пт"; "Сб"; "Вс"))
- Теперь используйте её как обычную функцию:
=ДЕНЬ_НЕДЕЛИ_RU(A1).
Преимущества LAMBDA:
- 🔄 Переиспользуемость: одна функция для всего файла.
- 🛠 Гибкость: легко модифицировать логику в одном месте.
- 📊 Производительность: работает быстрее, чем протягивание формул на большие диапазоны.
⚠️ Внимание: ФункцииLAMBDAи динамические массивы доступны только в Excel 365 и Excel 2021. В более ранних версиях эти формулы вернут ошибку#ИМЯ?.
7. Типичные ошибки и как их избежать
Даже опытные пользователи Excel иногда сталкиваются с проблемами при работе с днями недели. Вот TOP-5 ошибок и способы их решения:
| Ошибка | Причина | Решение |
|---|---|---|
#ЗНАЧ! в функции ДЕНЬНЕД |
Ячейка содержит текст, а не дату | Преобразуйте текст в дату с помощью ДАТАЗНАЧ или измените формат ячейки |
| Неправильный номер дня (на 1 больше/меньше) | Не учтен параметр тип_возврата в ДЕНЬНЕД |
Явно укажите 2 для понедельника=1: =ДЕНЬНЕД(A1; 2) |
| Дни недели на английском вместо русского | Языковые настройки Excel или системы | Используйте ВЫБОР с ручным списком или измените язык в параметрах |
| Формула не протягивается корректно | Абсолютные/относительные ссылки | Закрепите диапазоны со списком дней (например, $A$1:$A$7) |
#ИМЯ? в LAMBDA |
Устаревшая версия Excel | Замените на базовые функции или обновите Excel |
Если ваша формула возвращает неожиданный результат, проверьте:
- Формат ячейки с датой (должен быть "Дата", а не "Общий" или "Текстовый").
- Региональные настройки (
Файл → Параметры → Язык). - Наличие скрытых символов (пробелов, неразрывных пробелов) в датах.
Профилактический чек-лист перед работой с днями недели:
Убедиться, что все даты в формате "Дата" (а не текст)|Проверить региональные настройки Excel|Определиться с нужным форматом вывода (число/текст)|Протестировать формулу на 2-3 известных датах|Создать резервную копию файла перед массовыми изменениями-->
FAQ: Частые вопросы о днях недели в Excel
Как вернуть день недели на английском, если у меня русская версия Excel?
Используйте функцию ТЕКСТ с английским форматом:
=ТЕКСТ(A1; "[$-409]DDDD")
Где 409 — код локали для английского языка. Для других языков используйте соответствующие коды (например, 407 для немецкого).
Можно ли вернуть день недели без указания года? Например, только по числу и месяцу.
Да, но Excel все равно будет использовать текущий год. Пример:
=ТЕКСТ(ДАТА(ГОД(СЕГОДНЯ()); 5; 15); "ДДДД")
Эта формула вернет день недели для 15 мая текущего года. Чтобы избежать ошибок, всегда указывайте полную дату.
Как посчитать количество определенных дней недели в диапазоне дат?
Используйте комбинацию СЧЁТЕСЛИ и ДЕНЬНЕД:
=СЧЁТЕСЛИ(ДЕНЬНЕД(A1:A100; 2); 1)
Эта формула посчитает все понедельники (1) в диапазоне A1:A100. Для других дней замените 1 на нужный номер (2=вторник и т. д.).
Почему функция ДЕНЬНЕД возвращает 7 для воскресенья, а не 1?
Это зависит от параметра тип_возврата:
- Если он равен
1или опущен: воскресенье=1, суббота=7. - Если он равен
2: понедельник=1, воскресенье=7.
Укажите явный параметр, чтобы избежать путаницы: =ДЕНЬНЕД(A1; 2).
Как автоматически обновлять день недели при изменении даты?
Все формулы в Excel пересчитываются автоматически при изменении исходных данных. Если этого не происходит:
- Проверьте настройки пересчета:
Формулы → Параметры вычислений → Автоматически. - Убедитесь, что ячейка с датой не содержит текст или формулу, возвращающую статическое значение.
- Используйте
СЕГОДНЯ()для динамической даты:=ТЕКСТ(СЕГОДНЯ(); "ДДДД").