Как в Excel получить дни недели: от простых функций до автоматизации

Работа с датами и днями недели в Microsoft Excel — одна из самых востребованных задач при анализе данных, составлении графиков или планировании. Часто пользователям нужно не просто отобразить дату, а вытащить из неё конкретный день недели (например, "понедельник" вместо "01.01.2026"), причем в нужном формате — числовом, текстовом или сокращённом. В этой статье разберём 7 способов, как это сделать: от элементарных функций до сложных формул с учётом локализации, выходных дней и динамических диапазонов.

Особенность работы с днями недели в Excel заключается в том, что программа хранит даты как последовательные числа (начиная с 1 января 1900 года), а отображение дня недели зависит от региональных настроек. Например, функция ТЕКСТ в русской версии вернёт "понедельник", а в английской — "Monday". Мы покажем, как обойти эти нюансы и получить универсальные решения.

Статья будет полезна как новичкам, так и опытным пользователям: здесь есть базовые функции вроде ДЕНЬНЕД, так и продвинутые приёмы с ВЫБОР, ИНДЕКС и даже Power Query для автоматизации. Все примеры протестированы в Excel 2019–2026 и Excel Online.

1. Базовые функции: ДЕНЬНЕД и ТЕКСТ

Начнём с двух самых простых функций, которые есть в любом Excel — ДЕНЬНЕД (WEEKDAY в английской версии) и ТЕКСТ (TEXT). Они покрывают 80% задач по извлечению дней недели.

Функция ДЕНЬНЕД возвращает номер дня недели (от 1 до 7) для указанной даты. По умолчанию 1 — это воскресенье, но это можно изменить вторым аргументом. Синтаксис:

=ДЕНЬНЕД(дата; [тип_возврата])
  • 📅 дата — ячейка с датой (например, A1) или функция вроде СЕГОДНЯ().
  • 🔢 [тип_возврата] (необязательно): 1 — неделя начинается с воскресенья (1–7), 2 — с понедельника (1–7).

Пример: если в ячейке A1 дата 10.05.2026 (пятница), то:

  • 🔹 =ДЕНЬНЕД(A1) → вернёт 6 (пятница при типе 1).
  • 🔹 =ДЕНЬНЕД(A1; 2) → вернёт 5 (пятница при типе 2).

Функция ТЕКСТ преобразует дату в текстовый формат, включая название дня недели. Синтаксис:

=ТЕКСТ(дата; "формат")

Для дней недели используйте форматы:

  • 📌 "дддд" — полное название (например, "понедельник").
  • 📌 "ддд" — сокращённое (например, "пн").

Пример: =ТЕКСТ(A1; "дддд") → "пятница".

⚠️ Внимание: Функция ТЕКСТ зависит от языковых настроек Excel. Если у вас английская версия, вместо "пн" будет "Mon". Чтобы получить русские названия в любой версии, используйте методы из раздела 4.

2. Как получить название дня недели на русском в английском Excel

Если ваш Excel настроен на английский язык, но нужно вывести дни недели по-русски (или наоборот), стандартные функции не помогут. Решение — создать собственный перевод с помощью функции ВЫБОР (CHOOSE).

Алгоритм:

  1. Получите номер дня недели функцией ДЕНЬНЕД.
  2. Используйте ВЫБОР, чтобы сопоставить номер с русским названием.

Формула для полного названия:

=ВЫБОР(ДЕНЬНЕД(A1; 2); "понедельник"; "вторник"; "среда"; "четверг"; "пятница"; "суббота"; "воскресенье")

Для сокращённого варианта:

=ВЫБОР(ДЕНЬНЕД(A1; 2); "пн"; "вт"; "ср"; "чт"; "пт"; "сб"; "вс")

Преимущество этого метода — независимость от языковых настроек Excel. Минус — если изменится порядок дней (например, неделя начнётся с воскресенья), формулу придётся корректировать.

1. Убедитесь, что в ячейке A1 действительно дата (а не текст)

2. Проверьте второй аргумент ДЕНЬНЕД (2 для понедельника как первого дня)

3. Сопоставьте номера дней с позициями в ВЫБОР (1=пн, 2=вт и т.д.)

4. Если нужно воскресенье первым, измените аргумент на 1 и переставьте названия-->

3. Динамические диапазоны: дни недели для списка дат

Часто требуется вывести дни недели не для одной даты, а для целого столбца. Например, у вас в A1:A10 перечень дат, и нужно рядом показать соответствующие дни. Здесь поможет протягивание формул или функция МАССИВ (в новых версиях Excel).

Способ 1: Протягивание формулы

Введите в B1 любую из формул из раздела 1 или 2, затем протяните её за правый нижний угол ячейки до B10. Excel автоматически скорректирует ссылки (например, A1A2, A3 и т.д.).

Способ 2: Формула массива (Excel 365/2021)

Если у вас современная версия Excel, можно использовать ДИНАММАССИВ:

=ТЕКСТ(A1:A10; "дддд")

Эта формула автоматически заполнит все ячейки в диапазоне B1:B10 без протягивания.

Способ 3: Power Query для больших данных

Если данных тысячи, удобнее использовать Power Query:

  1. Выделите диапазон с датами → Данные → Получить данные → Из таблицы/диапазона.
  2. В редакторе Power Query выберите столбец с датой → Добавить столбец → Дата → День недели → Название дня.
  3. Нажмите Закрыть и загрузить.
Метод Подходит для Плюсы Минусы
Протягивание формулы Маленькие таблицы (до 100 строк) Простота, работает во всех версиях Ручная корректировка при добавлении строк
Формула массива Excel 365/2021, динамические диапазоны Автоматическое обновление, нет протягивания Не работает в старых версиях
Power Query Большие данные (тысячи строк) Высокая скорость, гибкость Требует навыков работы с Power Query
📊 Какой метод вы используете чаще для работы с днями недели?
Протягивание формул
Формулы массива (Excel 365)
Power Query
VBA/макросы
Другой

4. Продвинутые формулы: учёт выходных и праздников

Иногда нужно не просто вывести день недели, а проверять, является ли он выходным или рабочим днём. Например, для расчёта сроков доставки или планирования задач. Здесь поможет комбинация функций ДЕНЬНЕД и ЕСЛИ.

Формула для определения выходного:

=ЕСЛИ(ИЛИ(ДЕНЬНЕД(A1; 2)>5; [проверка праздников]); "Выходной"; "Рабочий день")

Где [проверка праздников] — это дополнительное условие для учёта государственных праздников (например, 1 января).

Пример с учётом праздников (предположим, список праздников в диапазоне D1:D10):

=ЕСЛИ(ИЛИ(ДЕНЬНЕД(A1; 2)>5; СЧЁТЕСЛИ(D1:D10; A1)>0); "Выходной"; "Рабочий день")

Как автоматизировать список праздников?

Создайте отдельный лист с перечнем праздничных дат (по одной в строке). Затем используйте функцию СЧЁТЕСЛИ, как в примере выше. Для динамического обновления можно подключить праздники через Power Query из внешнего источника (например, с сайта правительства).

Как учитывать региональные праздники?

Если в вашем регионе есть локальные праздники (например, день города), добавьте их в отдельный столбец на листе с праздниками. Затем модифицируйте формулу:

=ЕСЛИ(ИЛИ(ДЕНЬНЕД(A1; 2)>5; СЧЁТЕСЛИ(Праздники!A:A; A1)+СЧЁТЕСЛИ(Праздники!B:B; A1)>0); "Выходной"; "Рабочий день")

Где Праздники!A:A — федеральные праздники, а Праздники!B:B — региональные.

⚠️ Внимание: При работе с датами в формате текста (например, "01.01.2026" как текст, а не дата) функции ДЕНЬНЕД и СЧЁТЕСЛИ не сработают. Преобразуйте текст в дату с помощью ДАТАЗНАЧ или ЗНАЧЕН.

5. Ошибки и их решение

При работе с днями недели в Excel часто возникают ошибки. Разберём TOP-5 проблем и способы их исправления.

1. #ЗНАЧ! в функции ДЕНЬНЕД

Причина: в ячейке не дата, а текст. Решение:

  • 🔧 Проверьте формат ячейки: выделите её → Главная → Формат → Формат ячеек → Дата.
  • 🔧 Используйте ДАТАЗНАЧ для преобразования текста в дату: =ДЕНЬНЕД(ДАТАЗНАЧ(A1)).

2. Неправильный день недели (смещение на 1)

Причина: неверный второй аргумент в ДЕНЬНЕД. По умолчанию 1 — неделя начинается с воскресенья. Решение:

  • 📅 Для понедельника как первого дня используйте =ДЕНЬНЕД(A1; 2).

3. Функция ТЕКСТ возвращает англоязычные названия

Причина: языковые настройки Excel. Решение:

  • 🌍 Измените язык формата даты: Файл → Параметры → Язык → Язык отображения (требует перезапуска Excel).
  • 🔤 Или используйте ВЫБОР, как в разделе 2.

4. Формула массива не работает

Причина: старая версия Excel (до 2019 года). Решение:

  • 🔄 Обновите Excel или используйте протягивание формул.

5. Power Query не распознаёт даты

Причина: данные импортированы как текст. Решение:

  • 📊 В редакторе Power Query выделите столбец → Преобразовать → Тип данных → Дата.
=ДАТА(ГОД; МЕСЯЦ; ДЕНЬ)

-->

6. Автоматизация: VBA и пользовательские функции

Если вам регулярно нужно работать с днями недели, имеет смысл создать пользовательскую функцию на VBA. Это ускорит работу и избавит от повторного ввода сложных формул.

Пример 1: Функция для русского названия дня недели

Откройте редактор VBA (Alt + F11), вставьте новый модуль (Insert → Module) и добавьте код:

Function РусскийДеньНедели(Дата As Date) As String

Dim День As Integer

День = Weekday(Дата, vbMonday) ' vbMonday = 2 (неделя начинается с понедельника)

Select Case День

Case 1: РусскийДеньНедели = "понедельник"

Case 2: РусскийДеньНедели = "вторник"

Case 3: РусскийДеньНедели = "среда"

Case 4: РусскийДеньНедели = "четверг"

Case 5: РусскийДеньНедели = "пятница"

Case 6: РусскийДеньНедели = "суббота"

Case 7: РусскийДеньНедели = "воскресенье"

End Select

End Function

Теперь в Excel можно использовать =РусскийДеньНедели(A1).

Пример 2: Функция для проверки выходного

Function ЭтоВыходной(Дата As Date, Optional Праздники As Range) As String

Dim ДеньНедели As Integer

ДеньНедели = Weekday(Дата, vbMonday)

' Проверяем субботу/воскресенье

If ДеньНедели > 5 Then

ЭтоВыходной = "Выходной"

Exit Function

End If

' Проверяем праздники (если передан диапазон)

If Not Праздники Is Nothing Then

For Each Cell In Праздники

If Cell.Value = Дата Then

ЭтоВыходной = "Выходной"

Exit Function

End If

Next Cell

End If

ЭтоВыходной = "Рабочий день"

End Function

Использование: =ЭтоВыходной(A1; Праздники!A:A), где Праздники!A:A — столбец с датами праздников.

⚠️ Внимание: Пользовательские функции VBA работают только в классическом Excel (не в Excel Online). Также их нужно разрешить в настройках безопасности макросов (Файл → Параметры → Центр управления безопасностью → Параметры центра → Включить все макросы).

- Не работают в Excel Online и мобильных версиях.

- Требуют навыков программирования для модификации.

- Могут конфликтовать с защитой файла (макросы отключены по умолчанию).-->

7. Практические примеры: отчёты, графики, условное форматирование

Знание дней недели пригодится для создания интерактивных отчётов, графиков и условного форматирования. Разберём три реальных кейса.

Кейс 1: Подсветка выходных дней в календаре

Допустим, у вас в A1:A31 даты месяца. Чтобы выделить субботы и воскресенья красным:

  1. Выделите диапазон A1:A31.
  2. Перейдите в Главная → Условное форматирование → Создать правило → Использовать формулу.
  3. Введите формулу: =ДЕНЬНЕД(A1; 2)>5.
  4. Задайте формат (например, красный фон) и нажмите ОК.

Кейс 2: Гистограмма по дням недели

Чтобы построить график распределения данных по дням недели:

  1. Добавьте столбец с днями недели (например, =ТЕКСТ(A1; "ддд")).
  2. Используйте Вставка → Гистограмма с группировкой по дням.

Кейс 3: Фильтрация данных по дням недели

Если нужно отфильтровать таблицу по конкретному дню (например, показать только понедельники):

  1. Добавьте столбец с днями недели (формула из раздела 1 или 2).
  2. Примените фильтр (Данные → Фильтр) и выберите нужный день.

Критичный нюанс: при фильтрации по дням недели в большом диапазоне (более 10 000 строк) Excel может тормозить. В этом случае лучше использовать Power Query или сводные таблицы.

FAQ: Частые вопросы

Как в Excel получить номер дня недели (1–7), где 1 — понедельник?

Используйте функцию ДЕНЬНЕД с вторым аргументом 2:

=ДЕНЬНЕД(A1; 2)

Это вернёт 1 для понедельника, 2 для вторника и т.д. до 7 (воскресенье).

Почему функция ТЕКСТ возвращает "######" вместо дня недели?

Это происходит, если ширина столбца слишком мала для отображения полного названия дня. Растяните столбец или используйте сокращённый формат ("ддд" вместо "дддд").

Также проверьте, что в ячейке действительно дата, а не текст (используйте ДАТАЗНАЧ для преобразования).

Можно ли в Excel получить день недели на другом языке (например, немецком)?

Да, для этого:

  1. Измените языковые настройки Excel на нужный язык (Файл → Параметры → Язык).
  2. Используйте ТЕКСТ с локализованным форматом.

Или создайте собственную функцию через ВЫБОР, как в разделе 2, но с переводом на нужный язык.

Как посчитать количество определённых дней недели в диапазоне?

Используйте комбинацию СЧЁТЕСЛИ и ДЕНЬНЕД. Например, чтобы посчитать все понедельники в A1:A100:

=СЧЁТЕСЛИ(ДЕНЬНЕД(A1:A100; 2); 1)

В новых версиях Excel (с поддержкой массивов) формула сработает сразу. В старых версиях нужно вводить как формулу массива (Ctrl + Shift + Enter).

Как в Excel Online вывести дни недели?

В Excel Online доступны все стандартные функции (ДЕНЬНЕД, ТЕКСТ, ВЫБОР), но нет поддержки VBA и некоторых надстроек. Используйте формулы из разделов 1–3. Для автоматизации подключите Power Automate (бывший Microsoft Flow).