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

Работа с датами в Microsoft Excel — одна из самых востребованных задач среди пользователей. Нередко требуется не просто хранить даты, а анализировать их: выделять выходные, считать рабочие дни или просто определять, на какой день недели приходится конкретная дата. Например, вы можете планировать расписание встреч, анализировать продажи по дням недели или строить отчёты с учётом выходных.

В этой статье мы разберём 5 способов, как в Excel вычислить день недели по дате — от базовых функций до продвинутых формул с учётом локализации. Все методы работают в Excel 2010–2023, Excel для Mac и Google Таблицах. Вы также сможете скачать готовые шаблоны с формулами для быстрого использования.

Особое внимание уделим нюансам: почему функция ДЕНЬНЕД может выдавать неверные результаты в разных языковых версиях Excel, как избежать ошибок при работе с массивами дат, и как автоматизировать процесс с помощью условного форматирования или Power Query.

📊 Как часто вы работаете с датами в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

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

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

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

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

где [тип_возврата] — необязательный аргумент, определяющий систему нумерации:

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

Пример: если в ячейке A1 указана дата 15.05.2026 (среда), то:

=ДЕНЬНЕД(A1)  → вернёт 4 (среда, если воскресенье = 1)

=ДЕНЬНЕД(A1; 2) → вернёт 3 (среда, если понедельник = 1)

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

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

=ВЫБОР(ДЕНЬНЕД(A1; 2); "Пн"; "Вт"; "Ср"; "Чт"; "Пт"; "Сб"; "Вс")

2. Функция ТЕКСТ (TEXT): день недели на русском или английском

Если вам нужно получить полное название дня недели (например, "среда" вместо числа "3"), используйте функцию ТЕКСТ с форматом "ДДДД":

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

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

Доступные форматы для функции ТЕКСТ:

ФорматРезультатПример
"ДДД"Сокращённое название (3 буквы)"Ср"
"ДДДД"Полное название"Среда"
"DDDD"Полное название на английском"Wednesday"
"ДДД, ДД МММ"День недели + дата"Ср, 15 мая"

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

⚠️ Внимание: Если дата в ячейке хранится как текст (например, после импорта из CSV), функция ТЕКСТ вернёт ошибку. Используйте =ДАТАЗНАЧ(A1), чтобы преобразовать текст в дату.

3. Продвинутый метод: массив дней недели без ВПР

Если вам нужно избежать функции ВЫБОР (например, из-за ограничения на 254 аргумента в старых версиях Excel), используйте массив названий дней с функцией ИНДЕКС:

=ИНДЕКС({"Пн";"Вт";"Ср";"Чт";"Пт";"Сб";"Вс"}; ДЕНЬНЕД(A1; 2))

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

Чтобы сделать формулу более универсальной, добавьте проверку на пустую ячейку:

=ЕСЛИ(A1=""; ""; ИНДЕКС({"Пн";"Вт";"Ср";"Чт";"Пт";"Сб";"Вс"}; ДЕНЬНЕД(A1; 2)))

Ячейка содержит дату, а не текст|Формат ячейки — "Дата" (не "Общий")|Функция ДЕНЬНЕД использует нужный тип_возврата (2 для понедельника=1)|Для английских названий заменён массив на {"Mon";"Tue";...}

-->

4. Условное форматирование: выделение выходных дней

Чтобы визуально выделять выходные дни (субботу и воскресенье) в таблице с датами, используйте условное форматирование:

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

Теперь все субботы и воскресенья в выделенном диапазоне будут автоматически подсвечиваться. Этот метод полезен для анализа данных по рабочим/выходным дням — например, для отслеживания продаж или посещаемости.

Чтобы выделить праздничные дни, добавьте отдельное правило с функцией СЧЁТЕСЛИ, проверяющей дату по списку праздников:

=СЧЁТЕСЛИ(Праздники; A1)>0

где Праздники — именованный диапазон с датами праздников.

5. Power Query: автоматическое добавление дня недели при импорте

Если вы регулярно импортируете данные с датами (например, из CSV или базы данных), удобно автоматически добавлять столбец с днём недели с помощью Power Query:

  1. Импортируйте данные через Данные → Получить данные → Из файла/базы данных.
  2. В редакторе Power Query выделите столбец с датами.
  3. Перейдите на вкладку Добавить столбец → Дата и время → День → Название дня.
  4. Сохраните и загрузите данные обратно в Excel.

Преимущества этого метода:

  • 🔄 Автоматическое обновление при изменении источника данных.
  • 🌍 Поддержка нескольких языков (можно выбрать локаль для названий дней).
  • ⚡ Быстрое применение к большим массивам данных (миллионы строк).

Чтобы изменить язык названий дней, в Power Query используйте параметр Locale в функции Date.DayOfWeekName. Например, для русского языка:

= Date.DayOfWeekName([Дата], "ru-RU")
Как обновить данные после изменения источника?

В Excel перейдите на вкладку Данные, нажмите Обновить все (или Обновить для конкретного запроса). Если источник — файл, убедитесь, что он не открыт в другой программе (например, в Блокноте), иначе Power Query не сможет получить к нему доступ.

6. Ошибки и решения: почему формулы не работают?

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

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

Если вы работаете с Google Таблицами, помните, что некоторые функции ведут себя иначе:

  • 📅 ДЕНЬНЕД по умолчанию возвращает 1 для понедельника (как тип_возврата=2 в Excel).
  • 🌐 Функция ТЕКСТ игнорирует локаль — для русского языка используйте =ТЕКСТ(A1; "EEEE") + ручная замена английских названий через ПОДСТАВИТЬ.

FAQ: Частые вопросы по работе с днями недели в Excel

🔹 Как посчитать количество рабочих дней между двумя датами?

Используйте функцию ЧИСТРАБДНИ (в английской версии — NETWORKDAYS):

=ЧИСТРАБДНИ(начальная_дата; конечная_дата; [праздники])

где [праздники] — необязательный диапазон с датами праздников. Например, =ЧИСТРАБДНИ(A1; B1; Праздники!A:A).

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

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

🔹 Как получить номер недели по дате?

Используйте функцию НОМНЕДЕЛИ (в английской версии — WEEKNUM):

=НОМНЕДЕЛИ(A1; [тип_возврата])

где [тип_возврата] определяет первый день недели (1 — воскресенье, 2 — понедельник).

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

Да, все приведённые формулы (ДЕНЬНЕД, ТЕКСТ, ИНДЕКС) обновляются автоматически при изменении исходной даты. Если этого не происходит, проверьте настройки вычислений: Формулы → Параметры вычислений → Автоматически.

🔹 Как вывести день недели на английском в русскоязычном Excel?

Используйте функцию ТЕКСТ с английским форматом:

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

или создайте пользовательскую функцию на VBA, если требуется гибкость.