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

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

Вы узнаете, как:

  • 📅 Использовать функцию ТЕКСТ для гибкого отображения дней недели на русском и английском
  • 🔢 Применять ДЕНЬНЕД для числового и текстового вывода (от 1 до 7 или"пн"-"вс")
  • 📊 Создавать динамические таблицы с автоматическим определением выходных дней
  • ⚡ Оптимизировать формулы для работы с большими массивами данных (10 000+ строк)

Все примеры протестированы в Excel 2010–2026 (включая Microsoft 365) и адаптированы для русских региональных настроек. Готовые файлы с формулами можно скачать в конце статьи.

1. Базовый способ: функция ДЕНЬНЕД

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

Синтаксис функции:

=ДЕНЬНЕД(дата; [тип_возврата])
  • 📌 дата — ячейка с датой (например, A1) или дата в формате "ДД.ММ.ГГГГ"
  • 🔄 [тип_возврата] — необязательный аргумент, определяющий систему нумерации (по умолчанию = 1)

Примеры работы:

ФормулаРезультат (дата: 15.07.2026)Пояснение
=ДЕНЬНЕД("15.07.2026")2Понедельник (1=вс, 2=пн,...)
=ДЕНЬНЕД("15.07.2026"; 2)1Понедельник (1=пн, 2=вт,...)
=ДЕНЬНЕД("15.07.2026"; 3)0Понедельник (0=пн, 1=вт,...)

Важно: В русских версиях Excel нумерация по умолчанию начинается с воскресенья (1), а в английских — с понедельника (1). Это частая причина ошибок при копировании формул из зарубежных источников.

⚠️ Внимание: Если функция возвращает ошибку #ЗНАЧ!, проверьте формат ячейки с датой. Он должен быть Дата, а не Текст или Общий. Исправьте формат через Формат ячеек → Дата.
📊 Какой формат нумерации дней недели вам удобнее?
1=воскресенье
1=понедельник
0=понедельник
Не важно

2. Текстовый вывод дня недели (пн, вт, ср...)

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

Синтаксис:

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

Примеры форматов для русских настроек:

  • 📌 "ддд" — короткое название ("пн","вт")
  • 📌 "дддд" — полное название ("понедельник","вторник")
  • 📌 "[$-ru-RU]дддд" — принудительная русская локализация (актуально для английской версии Excel)

Практические формулы:

=ТЕКСТ(A1;"ддд") →"пн"

=ТЕКСТ(A1;"дддд") →"понедельник"

=ТЕКСТ(A1;"[$-en-US]dddd") →"Monday" (даже в русской версии)

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

Убедитесь, что ячейка с датой имеет формат"Дата"|Проверьте регистр в формате ("дддд", а не"ДДДД")|Для английского вывода добавьте локаль [$−en-US]|Используйте & для объединения с другим текстом (например, =ТЕКСТ(A1;"дддд")&","&A1)-->

3. Продвинутый подход: массивы и пользовательские функции

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

Пример 1. Формула массива для маркировки выходных:

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

Где [список_праздников] — диапазон с датами праздников (например, B1:B10).

Пример 2. VBA-функция для русского названия дня:

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

Dim дни As String

дни = Array("воскресенье","понедельник","вторник","среда","четверг","пятница","суббота")

РусскийДеньНедели = дни(Weekday(d, vbSunday) - 1)

End Function

Использование в ячейке: =РусскийДеньНедели(A1).

⚠️ Внимание: Пользовательские функции VBA работают только в файлах с расширением .xlsm (с поддержкой макросов). При открытии такого файла Excel может показать предупреждение о безопасности — разрешите выполнение макросов, если доверяете источнику.

4. Динамические таблицы с автоматическим определением дней недели

Если вам нужно анализировать большие массивы данных (например, журналы посещаемости или продаж), удобно создать динамическую таблицу с автоматическим заполнением дней недели.

Шаги для создания:

  1. Выделите диапазон с датами (например, A1:A100).
  2. Перейдите на вкладку Вставка → Таблица (или нажмите Ctrl+T).
  3. Добавьте столбец с формулой:
    =ТЕКСТ([@Дата];"ддд")

    (где Дата — заголовок вашего столбца).

  4. Excel автоматически применит формулу ко всем строкам таблицы.

Преимущества:

  • ✅ Автоматическое обновление при добавлении новых строк
  • ✅ Возможность фильтрации по дням недели (например, показать только"пн")
  • ✅ Легко добавлять вычисляемые столбцы (например,"Выходной/Рабочий")
Как добавить пользовательский формат для дней недели?

1. Выделите ячейки с датами.

2. Нажмите Ctrl+1 (или правая кнопка → Формат ячеек).

3. Перейдите на вкладку Число → Все форматы.

4. В поле Тип введите: дд.мм.гггг, дддд (пример:"15.07.2026, понедельник").

5. Нажмите ОК. Теперь даты будут отображаться с днём недели, но оставаться датами для вычислений.

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

При работе с датами и днями недели пользователи часто сталкиваются с типичными ошибками. Разберём самые распространённые:

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

Совет для больших файлов: Если формулы ТЕКСТ или ДЕНЬНЕД тормозят Excel при работе с 50 000+ строк, замените их на столбец с Power Query:

  1. Выделите диапазон → Данные → Из таблицы/диапазона.
  2. В редакторе Power Query добавьте пользовательский столбец с формулой:
    = Date.DayOfWeek([Дата], Day.Monday)
  3. Загрузите данные обратно в Excel.

1. Выделите диапазон с датами.

2. Перейдите на Главная → Условное форматирование → Создать правило.

3. Выберите Использовать формулу... и введите:

=ИЛИ(ДЕНЬНЕД(A1;2)>5; A1=ДАТА(2026;1;1))

(где ДАТА(2026;1;1) — дата новогоднего праздника).

4. Задайте формат (например, красный фон) и нажмите ОК.-->

6. Практическое применение: анализ временных данных

Знание дня недели позволяет решать реальные бизнес-задачи. Рассмотрим тричных сценария:

Сценарий 1. Анализ продаж по дням недели

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

  1. Добавьте столбец с днём недели: =ТЕКСТ(B2;"дддд").
  2. Создайте сводную таблицу:
    • 📊 Строки: День недели
    • 📈 Значения: Сумма по продажам
  • Отсортируйте по убыванию, чтобы увидеть самые"прибыльные" дни.
  • Сценарий 2. Планирование смен

    Для составления графика работы сотрудников:

    =ЕСЛИ(ДЕНЬНЕД(A2;2)<6;"Дневная смена";"Ночная смена")

    Сценарий 3. Расчёт рабочих дней между датами

    Функция ЧИСТРАБДНИ (англ. NETWORKDAYS) автоматически исключает выходные:

    =ЧИСТРАБДНИ("15.07.2026";"31.07.2026") → 11 (рабочих дней)
    =ЧИСТРАБДНИ.МЕЖД("15.07.2026";"31.07.2026"; ДиапазонПраздников),

    где ДиапазонПраздников — список дат праздников (например, D1:D5).-->

    7. Альтернативные методы (без формул)

    Если вам нужно одноразово определить день недели или вы работаете в Excel Online с ограниченными функциями, воспользуйтесь этими способами:

    Способ 1. Ручное форматирование

    1. Выделите ячейки с датами.
    2. Нажмите Ctrl+1Формат ячеек → Число → Все форматы.
    3. В поле Тип введите:
      • 📅 дд.мм.гггг, дддд →"15.07.2026, понедельник"
      • 📅 дддд, дд ммм →"понедельник, 15 июл"

    Способ 2. Power Query (Excel 2016+)

    1. Импортируйте данные в Power Query (Данные → Получение данных → Из таблицы/диапазона).
    2. Добавьте пользовательский столбец с формулой:
      = Date.DayOfWeekName([Дата])
    3. Загрузите данные обратно.
    4. Способ 3. Онлайн-конвертеры

      Для разовых задач можно использовать бесплатные сервисы:

      ⚠️ Внимание: При копировании результатов из онлайн-сервисов в Excel проверяйте формат ячеек. Часто даты вставляются как текст, что приведёт к ошибкам в формулах.

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

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

      Используйте формулы, а не ручное форматирование. Например, если в ячейке A1 дата, введите в B1:

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

      Теперь при изменении A1 значение в B1 будет обновляться автоматически. Для принудительного пересчёта нажмите F9.

      Почему функция ДЕНЬНЕД возвращает неверный день недели?

      Скорее всего, проблема в аргументе тип_возврата. По умолчанию (=ДЕНЬНЕД(A1)) неделя начинается с воскресенья (1). Чтобы понедельник был первым днём, используйте:

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

      Также проверьте региональные настройки Excel: Файл → Параметры → Язык.

      Можно ли в Excel получить день недели на английском, если у меня русская версия?

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

      =ТЕКСТ(A1;"[$-en-US]dddd")

      Это вернёт полное название дня на английском ("Monday","Tuesday" и т. д.), независимо от языка интерфейса Excel.

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

      Используйте функцию СЧЁТЕСЛИ с массивом:

      =СУММПРОИЗВ(--(ТЕКСТ(A1:A100;"ддд")="пн"))

      Эта формула вернёт количество понедельников в диапазоне A1:A100. Для других дней замените "пн" на "вт", "ср" и т. д.

      Важно: Это формула массива — в старых версиях Excel (до 2019) завершайте ввод нажатием Ctrl+Shift+Enter.

      Как в Excel Online определить день недели? Все функции возвращают ошибку.

      Excel Online поддерживает те же функции, что и десктопная версия, но с ограничениями:

      • ✅ Работают: ДЕНЬНЕД, ТЕКСТ, ЧИСТРАБДНИ
      • ❌ Не работают: пользовательские функции VBA и некоторые надстройки

    Если формулы не работают:

    1. Проверьте формат ячейки (должен быть Дата).
    2. Обновите страницу (F5).
    3. Попробуйте альтернативный синтаксис на английском:
      =WEEKDAY(A1, 2)