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

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

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

В этой статье вы найдёте не только стандартные решения вроде функции ТЕКСТ, но и малоизвестные трюки. Например, как вытащить номер дня недели (где понедельник = 1), как сделать автозаполнение с учётом праздников, или почему в некоторых случаях Excel показывает дни недели на английском — и как это исправить. А ещё мы разберём типичные ошибки, из-за которых формулы возвращают #ЗНАЧ! вместо ожидаемого "пятница".

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

Способ 1: Функция ТЕКСТ — самый простой вариант для новичков

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

=ТЕКСТ(дата; "дддд")

Где дата — это ссылка на ячейку с датой (например, A2), а "дддд" — формат отображения полного названия дня недели. Если вам нужны сокращённые варианты (например, "пн" вместо "понедельник"), используйте "ddd".

  • 📅 Пример: =ТЕКСТ(A2; "дддд") вернёт "среда" для даты 15.05.2026.
  • 🔄 Локализация: Если у вас английская версия Excel, результат будет на английском ("Wednesday"). Чтобы исправить это, измените языковые настройки ячейки.
  • Бонус: Можно комбинировать с другими форматами, например: =ТЕКСТ(A2; "дддд, dd.mm.yyyy") → "среда, 15.05.2026".
⚠️ Внимание: Функция ТЕКСТ возвращает текст, а не число. Это значит, чтоLater вы не сможете использовать результат в математических операциях (например, сложить или отсортировать дни недели по алфавиту). Для таких задач нужны другие подходы — о них читайте дальше.
📊 Какой формат дней недели вы чаще используете в Excel?
Полное название (среда)
Сокращённое (ср)
Номер дня (1-7)
Другой вариант

Способ 2: Функция ДЕНЬНЕД — когда нужен номер, а не название

Иногда вместо слова "пятница" требуется её порядковый номер — например, для условного форматирования (подсветки выходных) или для расчётов. Здесь на помощь приходит функция ДЕНЬНЕД:

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

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

  • 🔢 1 (или опущено): Воскресенье = 1, суббота = 7 (стандарт для США).
  • 🔢 2: Понедельник = 1, воскресенье = 7 (европейский стандарт).
  • 🔢 3: Понедельник = 0, воскресенье = 6 (используется в некоторых финансовых расчётах).

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

  • =ДЕНЬНЕД(A2) → 4 (воскресенье=1, среда=4).
  • =ДЕНЬНЕД(A2; 2) → 3 (понедельник=1, среда=3).
Тип возвратаПонедельникВоскресеньеПример для среды
1 (по умолчанию)214
2173
3062
⚠️ Внимание: Если вы используете номер дня недели для фильтрации данных, убедитесь, что параметр [тип_возврата] одинаков во всех формулах. Иначе выходные дни могут "сместиться"!

☑️ Подготовка к работе с ДЕНЬНЕД

Выполнено: 0 / 4

Способ 3: Форматирование ячеек — автоматическое отображение без формул

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

  1. Выделите ячейку(и) с датой.
  2. Нажмите Ctrl+1 (или правой кнопкой → Формат ячеек).
  3. Перейдите на вкладку ЧислоВсе форматы.
  4. В поле Тип введите один из шаблонов:
    • дддд — полное название (среда).
    • ddd — сокращённое (ср).
    • дддд, dd.mm.yyyy — день недели + дата (среда, 15.05.2026).

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

Минус: если вы скопируете значение такой ячейки в другой файл, формат может сброситься. Чтобы этого избежать, используйте Специальную вставкуЗначения и форматы.

Способ 4: Продвинутые формулы — день недели с учётом праздников и исключений

А что если вам нужно не просто определить день недели, а ещё и учесть, что 1 мая — это праздник, даже если выпадает на вторник? Или что ваша компания работает по скользящему графику, где "выходные" плавают? Здесь пригодятся комбинированные формулы.

Пример 1: Подсветка выходных и праздников

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

=ИЛИ(ДЕНЬНЕД(A2;2)>5; СЧЁТЕСЛИ($D$2:$D$10;A2))

Где:

  • A2 — ячейка с датой.
  • $D$2:$D$10 — диапазон с датами праздников (например, 01.01.2026, 08.03.2026 и т.д.).
  • ДЕНЬНЕД(...,2)>5 — проверяет, что день недели — суббота (6) или воскресенье (7).

Пример 2: Название дня недели + пометка о празднике

=ЕСЛИ(СЧЁТЕСЛИ($D$2:$D$10;A2); ТЕКСТ(A2;"дддд")&" (праздник)"; ТЕКСТ(A2;"дддд"))

Эта формула вернёт, например, "среда" или "среда (праздник)", если дата есть в списке $D$2:$D$10.

⚠️ Внимание: Если список праздников большой (более 100 дат), используйте вместо СЧЁТЕСЛИ функцию ПОИСКПОЗ с обработкой ошибок — она работает быстрее в больших массивах.
Как автоматически обновлять список праздников?

Если праздники привязаны к конкретным датам (например, 1 января), достаточно один раз ввести их в отдельный лист. Для "плавающих" праздников (например, Пасха) потребуется VBA-скрипт или подключение к внешнему календарю через Power Query.

Способ 5: VBA-макросы — для автоматизации рутинных задач

Если вам регулярно нужно обрабатывать сотни дат с дополнительной логикой (например, выделять красным все пятницы 13-го), стоит освоить VBA. Вот простой макрос, который добавляет столбец с днями недели ко всем выделенным датам:

Sub AddWeekdayColumn()

Dim rng As Range

Dim cell As Range

Dim newCol As Range

' Проверяем, выбраны ли ячейки с датами

On Error Resume Next

Set rng = Selection.SpecialCells(xlCellTypeConstants, xlNumbers)

On Error GoTo 0

If rng Is Nothing Then

MsgBox "Выделите ячейки с датами!", vbExclamation

Exit Sub

End If

' Добавляем новый столбец справа

Set newCol = rng.Offset(0, 1).EntireColumn

newCol.Insert Shift:=xlToRight

' Заполняем дни недели

For Each cell In rng

cell.Offset(0, 1).Value = Format(cell.Value, "dddd")

Next cell

' Форматируем новый столбец

newCol.NumberFormat = "@" ' Текстовый формат

newCol.ColumnWidth = 12

End Sub

Как использовать:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Выделите ячейки с датами в Excel и запустите макрос (Alt+F8 → выберите AddWeekdayColumnВыполнить).

Этот макрос не только добавляет дни недели, но и автоматически подбирает ширину столбца. А ещё он проверяет, что выделенные ячейки действительно содержат даты — это защищает от ошибок.

Типичные ошибки и как их избежать

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

  • 🗓️ Ячейка выглядит как дата, но Excel воспринимает её как текст.

    Симптом: формулы возвращают #ЗНАЧ! или неверный день недели.

    Решение: Преобразуйте текст в дату с помощью ДАТАЗНАЧ или ТЕКСТ.В.ДАТУ (в новых версиях). Пример: =ДЕНЬНЕД(ДАТАЗНАЧ(A2)).

  • 🌍 Дни недели на английском, хотя Excel русифицирован.

    Причина: языковые настройки ячейки не совпадают с системными.

    Решение: Выделите ячейку → Формат ячеек → вкладка Число → выберите локаль "Русский (Россия)".

  • Формула работает медленно на больших данных.

    Причина: функции вроде СЧЁТЕСЛИ по большому диапазону тормозят Excel.

    Решение: Замените на ПОИСКПОЗ или используйте Power Query для предварительной обработки.

Критическая ошибка: если ваша дата хранится как текст в формате "15-05-2026", а регион системы настроен на "MM-DD-YYYY", Excel интерпретирует её как 15-е месяца 05 (май), то есть как несуществующую дату. Все последующие расчёты будут неверными! Всегда проверяйте формат даты через Формат ячеек.

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

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

Да, но для этого нужно изменить языковые настройки Windows или использовать специальные надстройки. Альтернативный способ — создать таблицу соответствий (например, "понедельник" = "дүйсенбі" для казахского) и использовать ВПР:

=ВПР(ТЕКСТ(A2;"дддд"); ТаблицаПеревода!A:B; 2; ЛОЖЬ)

Где ТаблицаПеревода!A:B — диапазон с парами "русское название" — "перевод".

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

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

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

Эта формула вернёт количество понедельников (где 1 — номер понедельника при тип_возврата=2) в диапазоне A2:A100.

Почему функция ДЕНЬНЕД возвращает неверный номер дня для исторических дат (например, до 1900 года)?

Excel хранит даты как количество дней, прошедших с 1 января 1900 года (в Windows) или 1904 года (в Mac). Для дат до 1900 года используйте текстовый формат или специализированные надстройки для работы с историческими данными.

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

Да, если дата в ячейке — это формула (например, =СЕГОДНЯ() или =A1+7), то день недели будет пересчитываться автоматически. Если дата введена вручную, используйте F9 для принудительного пересчёта или настройте Автоматический пересчёт в Формулы → Параметры вычислений.

Как вставить день недели в Google Таблицах? Работают ли там те же функции?

В Google Sheets синтаксис аналогичен, но есть нюансы:

  • Функция ТЕКСТ работает так же: =ТЕКСТ(A2; "дддд").
  • Функция ДЕНЬНЕД называется WEEKDAY, но поддерживает те же параметры: =WEEKDAY(A2; 2).
  • Для локализации используйте настройки файла: Файл → Настройки → Регион.