Как в Excel определить день недели по дате: все способы с примерами

Почему Excel не показывает дни недели автоматически и как это исправить

Вы когда-нибудь сталкивались с ситуацией, когда в таблице есть столбец с датами, но нужно быстро понять, на какой день недели приходится каждая из них? По умолчанию Microsoft Excel отображает даты в формате дд.мм.гггг или мм/дд/гг — без указания дня недели. Это создаёт неудобства при анализе временных данных: планировании смен, составлении графиков, расчёте рабочих дней или обработке статистики по дням.

К счастью, в Excel есть несколько встроенных способов преобразовать дату в день недели — от простых функций до гибких формул с настройкой языка и формата. В этой статье мы разберём 5 рабочих методов, включая малоизвестные трюки для нестандартных задач. Вы узнаете, как:

  • 📅 Получать полное название дня (например, "понедельник") или сокращённое ("пн")
  • 🔢 Преобразовывать день недели в число (1–7) для сортировки или вычислений
  • 🌍 Менять язык отображения (русский, английский и др.)
  • ⚡ Автоматически подсвечивать выходные дни с помощью условного форматирования

Все примеры протестированы в Excel 2019–2023 и Excel Online, но большинство функций работают и в старых версиях (начиная с 2007 года). Если вы используете Google Таблицы, принципы будут аналогичными, но с небольшими синтаксическими отличиями.

📊 Какой формат дня недели вам нужнее?
Полное название (понедельник)
Сокращённое (пн)
Числовой (1-7)
Другой вариант

Способ 1: Функция ТЕКСТ — гибкость формата без формул

Самый универсальный метод — использовать функцию ТЕКСТ (или TEXT в английской версии). Она позволяет преобразовать дату в любой текстовый формат, включая дни недели. Синтаксис:

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

Где дата — это ссылка на ячейку (например, A2) или дата в формате ДАТА(год;месяц;день), а "формат" — строка с кодом формата. Для дней недели доступны следующие варианты:

Код формата Пример результата Описание
"дддд" понедельник Полное название дня на русском
"ddd" пн Сокращённое название (2 буквы)
"dddd", "$-419" Monday Полное название на английском
"[$-809]дддд" понедельник Явное указание русского языка (код 809)

Примеры использования:

  • 📌 =ТЕКСТ(A2; "дддд") → вернёт "среда" для даты 01.05.2026
  • 📌 =ТЕКСТ(ДАТА(2026;5;1); "ddd") → вернёт "ср"
  • 📌 =ТЕКСТ(СЕГОДНЯ(); "[$-409]dddd") → вернёт текущий день на английском
⚠️ Внимание: Если функция возвращает ###### вместо дня недели, проверьте ширину столбца — Excel не умещает длинный текст. Также убедитесь, что ячейка с датой имеет формат Дата, а не Текст (используйте Формат ячеек → Дата).

Способ 2: Функция ДЕНЬНЕД — числовое представление (1–7)

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

  • 🔢 1 — воскресенье (по умолчанию в Excel)
  • 🔢 2 — понедельник
  • 🔢 ...
  • 🔢 7 — суббота

Синтаксис:

=ДЕНЬНЕД(дата; [тип_возврата])

Параметр [тип_возврата] необязателен. Он определяет, с какого дня начинается отсчёт:

  • 📌 1 или опущен — неделя начинается с воскресенья (1–7)
  • 📌 2 — неделя начинается с понедельника (1–7)
  • 📌 3 — неделя начинается с понедельника (0–6)

Примеры:

  • 📌 =ДЕНЬНЕД(A2) → для 01.05.2026 (среда) вернёт 4 (воскресенье=1, понедельник=2, вторник=3, среда=4)
  • 📌 =ДЕНЬНЕД(A2; 2) → для той же даты вернёт 3 (понедельник=1, вторник=2, среда=3)
⚠️ Внимание: В Google Таблицах функция ДЕНЬНЕД по умолчанию возвращает 1 для понедельника (как тип_возврата=2 в Excel). Это частая причина ошибок при переносе формул между программами.

Убедитесь, что ячейка содержит дату, а не текст|Проверьте регион настроек Excel (воскресенье/понедельник как первый день)|Используйте Формат ячеек → Общий для отображения числа, а не даты|Тестируйте формулу на известной дате (например, 01.01.2026 — это понедельник)

-->

Способ 3: Функция НОМНЕДЕЛИ — альтернатива для международных стандартов

Функция НОМНЕДЕЛИ (англ. ISOWEEKNUM) чаще используется для определения номера недели в году, но её можно адаптировать и для дней. Однако для нашей задачи она менее удобна, чем ДЕНЬНЕД. Тем не менее, рассмотрим её для полноты картины.

Синтаксис:

=НОМНЕДЕЛИ(дата)

Особенность этой функции в том, что она всегда считает понедельник первым днём недели (стандарт ISO 8601). Чтобы получить день недели, можно комбинировать её с другими функциями, но проще использовать ДЕНЬНЕД.

Пример нестандартного использования (определяем, является ли дата выходным):

=ЕСЛИ(ИЛИ(ДЕНЬНЕД(A2;2)>5; НОМНЕДЕЛИ(A2)=НОМНЕДЕЛИ(A2-1)); "Выходной"; "Рабочий")

Эта формула проверяет, попадает ли дата на субботу/воскресенье или является ли она частью недели, где первый день — понедельник (для некоторых стран).

Почему НОМНЕДЕЛИ неудобна для дней недели?

Функция возвращает номер недели в году (1–53), а не день недели. Чтобы получить день, придётся использовать дополнительные вычисления, например, вычитать дату начала недели. Это избыточно, когда есть специализированная функция ДЕНЬНЕД. Однако НОМНЕДЕЛИ полезна для задач, где важна привязка к стандарту ISO (например, в европейских отчётах).

Способ 4: Условное форматирование для визуального выделения дней

Если ваша цель — не просто определить день недели, а визуально выделить выходные или конкретные дни (например, пятницы), используйте Условное форматирование. Это позволит автоматически окрашивать ячейки в зависимости от дня недели.

Алгоритм действий:

  1. Выделите диапазон ячеек с датами.
  2. Перейдите на вкладку Главная → Условное форматирование → Создать правило.
  3. Выберите Использовать формулу для определения форматируемых ячеек.
  4. Введите формулу:
    • 🎨 Для выходных (суббота/воскресенье): =ИЛИ(ДЕНЬНЕД(A1;2)=6; ДЕНЬНЕД(A1;2)=7)
    • 🎨 Для пятницы: =ДЕНЬНЕД(A1;2)=5
  • Задайте формат (например, красный фон для выходных).
  • Пример результата:

    Скриншот Excel с условным форматированием: выходные дни подсвечены красным
    ⚠️ Внимание: В формулах условного форматирования используйте относительные ссылки (например, A1, а не $A$1), чтобы правило корректно применялось ко всем ячейкам диапазона. Если указать абсолютную ссылку, проверяться будет только одна ячейка.

    Способ 5: Power Query для массовой обработки дат

    Если у вас большая таблица с тысячами дат, и нужно не только определить дни недели, но и провести дополнительную обработку (например, группировку по дням), стоит воспользоваться инструментом Power Query (доступен в Excel 2016 и новее).

    Пошаговая инструкция:

    1. Выделите диапазон с датами и нажмите Данные → Из таблицы/диапазона (или Получить данные → Из таблицы/диапазона).
    2. В открывшемся редакторе Power Query выделите столбец с датами.
    3. Перейдите на вкладку Добавить столбец → Дата → День → Название дня.
    4. Выберите формат: полное или сокращённое название.
    5. Нажмите Закрыть и загрузить, чтобы вернуть данные в Excel.
    6. Преимущества этого метода:

      • ⚡ Обработка миллионов строк без замедления Excel
      • 🔄 Возможность обновления данных одним кликом
      • 🔧 Гибкая настройка локали (языка дней недели)

      Power Query автоматически распознаёт регион вашей системы, поэтому дни недели будут на том языке, который установлен в настройках Windows (например, если у вас английская версия Excel, но русская Windows, дни отобразятся по-русски).

      Распространённые ошибки и как их избежать

      Даже в простых формулах с датами пользователи часто сталкиваются с ошибками. Вот типичные проблемы и их решения:

      Ошибка Причина Решение
      #ЗНАЧ! Ячейка содержит текст, а не дату Используйте =ДАТАЗНАЧ(A1), чтобы преобразовать текст в дату
      #ИМЯ? Опечатка в названии функции Проверьте регистр: ТЕКСТ, а не текст
      Неверный день недели Неправильный тип_возврата в ДЕНЬНЕД Укажите 2 для недели, начинающейся с понедельника
      Дни на английском Региональные настройки Excel Добавьте код локали: ТЕКСТ(A1; "[$-809]дддд") для русского

      Ещё одна частая ошибка — путаница между функциями ДЕНЬНЕД и ДЕНЬ. Последняя возвращает число месяца (1–31), а не день недели!

      📊 С какой ошибкой вы сталкивались чаще?
      #ЗНАЧ! (неверный формат данных)
      #ИМЯ? (ошибка в функции)
      Неверный день недели (понедельник/воскресенье)
      Другое

      FAQ: Ответы на частые вопросы

      Как сделать так, чтобы день недели обновлялся автоматически при изменении даты?

      Все описанные функции (ТЕКСТ, ДЕНЬНЕД и др.) динамически пересчитываются при изменении исходной даты. Убедитесь, что в настройках Excel включён Автоматический пересчёт (Формулы → Параметры вычислений → Автоматически). Если используете СЕГОДНЯ(), формула будет обновляться при каждом открытии файла.

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

      Да, для этого используйте код локали в функции ТЕКСТ. Примеры:

      • 🇺🇦 Украинский: =ТЕКСТ(A1; "[$-804]дддд") → "середа"
      • 🇩🇪 Немецкий: =ТЕКСТ(A1; "[$-407]dddd") → "Mittwoch"

    Полный список кодов локалей можно найти в документации Microsoft.

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

    Используйте функцию СЧЁТЕСЛИ с массивом. Пример для подсчёта понедельников в диапазоне A1:A100:

    =СУММПРОИЗВ(--(ДЕНЬНЕД(A1:A100;2)=1))

    Здесь ДЕНЬНЕД(...,2)=1 проверяет, является ли день понедельником (1), а СУММПРОИЗВ суммирует все ИСТИНА (преобразованные в 1 с помощью --).

    Почему в моём Excel дни недели начинаются с воскресенья, а не с понедельника?

    Это зависит от региональных настроек вашей системы. В США и некоторых других странах неделя традиционно начинается с воскресенья. Чтобы изменить это:

    1. В Windows: Панель управления → Часы и регион → Изменение форматов даты, времени и чисел → Дополнительные параметры → Изменить формат даты → Первый день недели.
    2. В Excel: используйте параметр тип_возврата=2 в функции ДЕНЬНЕД, чтобы принудительно начинать отсчёт с понедельника.
    Можно ли использовать эти функции в Google Таблицах?

    Да, но с небольшими отличиями:

    • 📌 =ТЕКСТ(A1; "dddd") → работает аналогично
    • 📌 =ДЕНЬНЕД(A1; 2) → по умолчанию возвращает 1 для понедельника (как тип_возврата=2 в Excel)
    • 📌 Для английского языка используйте =ТЕКСТ(A1; "eeee") (вместо "dddd")

    В Google Таблицах также есть функция =WEEKDAY(A1; 2), полностью аналогичная Excel.