Вы когда-нибудь пытались вспомнить, в какой день недели родились ваши близкие, но ленились считать вручную? Или может, вам нужно было проанализировать распределение дней рождения сотрудников по дням недели для HR-отчёта? Microsoft Excel справляется с этой задачей за секунды — и для этого не нужно быть программистом.
В этой статье мы разберём 5 рабочих методов — от элементарных функций до полуавтоматических решений с выпадающими списками. Вы узнаете, как не только получить название дня недели, но и визуализировать данные, избежать типичных ошибок при работе с датами, а также автоматизировать процесс для тысяч записей. Особое внимание уделим нуансам формата ячеек, которые часто сбивают с толку новичков.
Спойлер: самый надёжный способ — это комбинация функций ДЕНЬНЕД и ТЕКСТ, но есть и более изящные решения для специфических задач. А если вам нужно не просто узнать день недели, а ещё и проанализировать статистику (например, сколько людей родилось в пятницу), мы покажем, как это сделать с помощью сводных таблиц.
═══
1. Базовый метод: функция ДЕНЬНЕД (WEEKDAY)
Функция ДЕНЬНЕД (или WEEKDAY в английской версии) — это ваш первый помощник. Она возвращает номер дня недели для указанной даты, где воскресенье по умолчанию считается первым днём (1), а суббота — седьмым (7). Но здесь есть подводные камни!
Синтаксис функции:
=ДЕНЬНЕД(дата; [тип_возврата])
- 📅 дата — ячейка с датой рождения (например,
A2) или дата в формате"ДД.ММ.ГГГГ". - 🔢 [тип_возврата] — необязательный аргумент, который определяет, с какого дня начинается отсчёт:
1или опущен — воскресенье = 1, суббота = 7 (стандарт для США).2— понедельник = 1, воскресенье = 7 (европейский стандарт).3— понедельник = 0, воскресенье = 6 (используется в некоторых финансовых расчётах).
Пример: если в ячейке A2 указана дата 15.07.1990, формула =ДЕНЬНЕД(A2; 2) вернёт 7 (так как 15 июля 1990 года было воскресенье, а при типе 2 воскресенье = 7).
⚠️ Внимание: Если функция возвращает ошибку#ЗНАЧ!, проверьте формат ячейки с датой. Часто пользователи вводят дату как текст (например,15-07-1990вместо15.07.1990). Исправьте формат наДатачерез менюГлавная → Формат → Формат ячеек.
═══
2. Преобразование номера дня в название (ТЕКСТ и ВЫБОР)
Функция ДЕНЬНЕД возвращает число, но нам-то нужно название дня недели! Здесь на помощь приходят две функции:
- 📝
ТЕКСТ— преобразует дату в текстовый формат с названием дня. - 🔀
ВЫБОР— заменяет номер дня на его название (полезно для кастомных форматов).
Способ 1. Функция ТЕКСТ
=ТЕКСТ(A2; "ДДДД")
Эта формула вернёт полное название дня недели (например, "понедельник"). Если нужно сокращённое название, используйте формат "ДДД" (вернёт "пн").
Способ 2. Функция ВЫБОР (для гибкости)
=ВЫБОР(ДЕНЬНЕД(A2; 2); "Пн"; "Вт"; "Ср"; "Чт"; "Пт"; "Сб"; "Вс")
Этот метод позволяет задать любые названия дней, включая переводы на другие языки или аббревиатуры. Например, для английского варианта:
=ВЫБОР(ДЕНЬНЕД(A2; 2); "Mon"; "Tue"; "Wed"; "Thu"; "Fri"; "Sat"; "Sun")
| Формула | Результат для 15.07.1990 | Примечания |
|---|---|---|
=ТЕКСТ(A2; "ДДДД") |
воскресенье | Полное название на русском |
=ТЕКСТ(A2; "ДДД") |
вс | Сокращённое название |
=ВЫБОР(ДЕНЬНЕД(A2; 2); "Пн"; ...; "Вс") |
Вс | Кастомный формат |
═══
3. Автоматический расчёт с выпадающим списком
Что если вам нужно не просто узнать день недели для одной даты, а обработать сотни записей? Например, у вас есть таблица с датами рождения сотрудников, и вы хотите добавить столбец с днями недели. Вот как это сделать полуавтоматически:
- Создайте столбец рядом с датами (например,
B). - В ячейку
B2введите формулу:=ТЕКСТ(A2; "ДДДД") - Растяните формулу на весь столбец (двойной клик по маркеру автозаполнения или перетащите вниз).
- Опционально: добавьте выпадающий список для быстрого фильтра:
- Выделите ячейки в столбце
B. - Перейдите в
Данные → Проверка данных. - В поле
Тип данныхвыберитеСписок. - В поле
Источниквведите:понедельник,вторник,среда,четверг,пятница,суббота,воскресенье.
- Выделите ячейки в столбце
Теперь вы можете фильтровать таблицу по дням недели — например, узнать, сколько человек родилось в выходные.
☑️ Настройка автозаполнения дней недели
⚠️ Внимание: Если при растягивании формулы появляются ошибки#ССЫЛКА!, убедитесь, что в столбце с датами нет пустых ячеек или текста. Используйте функциюЕСЛИОШИБКАдля защиты:=ЕСЛИОШИБКА(ТЕКСТ(A2; "ДДДД"); "")
═══
4. Продвинутый метод: пользовательская функция на VBA
Если вам нужно не просто получить день недели, а, например, автоматически раскрасить ячейки в зависимости от дня (выходные — красным, будни — зелёным), стандартных функций будет недостаточно. Здесь поможет макрос на VBA.
Вот код для создания пользовательской функции ДЕНЬ_НЕДЕЛИ_РУС, которая возвращает название дня на русском с учётом склонений:
Function ДЕНЬ_НЕДЕЛИ_РУС(дата As Date) As String
Dim день As Integer
день = Weekday(дата, vbMonday) ' vbMonday = 2 (понедельник = 1)
Select Case день
Case 1: ДЕНЬ_НЕДЕЛИ_РУС = "понедельник"
Case 2: ДЕНЬ_НЕДЕЛИ_РУС = "вторник"
Case 3: ДЕНЬ_НЕДЕЛИ_РУС = "среда"
Case 4: ДЕНЬ_НЕДЕЛИ_РУС = "четверг"
Case 5: ДЕНЬ_НЕДЕЛИ_РУС = "пятница"
Case 6: ДЕНЬ_НЕДЕЛИ_РУС = "суббота"
Case 7: ДЕНЬ_НЕДЕЛИ_РУС = "воскресенье"
End Select
End Function
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - В меню выберите
Insert → Module. - Вставьте код выше.
- Закройте редактор и вернитесь в Excel.
- Теперь в любой ячейке можно использовать формулу
=ДЕНЬ_НЕДЕЛИ_РУС(A2).
Преимущество этого метода — гибкость. Вы можете модифицировать функцию, чтобы она возвращала, например, только первые буквы дней или добавляла эмодзи (📅 понедельник).
Как добавить условное форматирование для выходных?
1. Выделите столбец с днями недели.
2. Перейдите в Главная → Условное форматирование → Создать правило.
3. Выберите Использовать формулу... и введите:
=ИЛИ(B2="суббота"; B2="воскресенье")
4. Задайте красный цвет текста или заливки.
5. Добавьте второе правило для будних дней с зелёным цветом.
═══
5. Анализ распределения дней рождения по дням недели
Допустим, у вас есть список из 100 дат рождения, и вы хотите узнать, какой день недели самый "популярный". Для этого идеально подходит сводная таблица:
- Добавьте рядом с датами столбец с днями недели (как в разделе 3).
- Выделите оба столбца (с датами и днями недели).
- Перейдите в
Вставка → Сводная таблица. - В настройках сводной таблицы:
- Перетащите поле с днями недели в область
Строки. - Перетащите поле с датами в область
Значения(Excel автоматически посчитает количество записей).
- Перетащите поле с днями недели в область
Результат будет выглядеть так:
| День недели | Количество | % от общего |
|---|---|---|
| понедельник | 12 | 12% |
| вторник | 15 | 15% |
| среда | 14 | 14% |
| четверг | 18 | 18% |
| пятница | 20 | 20% |
| суббота | 13 | 13% |
| воскресенье | 8 | 8% |
Из таблицы видно, что больше всего людей родилось в пятницу, а меньше всего — в воскресенье. Такой анализ полезен для HR-менеджеров, астрологов или просто для любопытства!
═══
6. Типичные ошибки и как их избежать
Даже в такой простой задаче легко допустить ошибку. Вот TOP-5 проблем и их решения:
- 🗓️ Дата в текстовом формате: Excel не распознаёт
"15-07-1990"или"15/07/1990"как дату. Исправьте формат наДД.ММ.ГГГГили используйте функциюДАТАЗНАЧ:=ДАТАЗНАЧ("15.07.1990") - 🌍 Неверный регион: Если функция
ДЕНЬНЕДвозвращает неожиданные номера, проверьте настройки региона вФайл → Параметры → Язык. В некоторых странах неделя начинается с воскресенья, в других — с понедельника. - ⚠️ Ошибка #ИМЯ?: Убедитесь, что название функции написано правильно (например,
ДЕНЬНЕД, а неДЕНЬ_НЕДЕЛИ). В английской версии Excel используйтеWEEKDAY. - 🔄 Не обновляются данные: Если вы изменили дату, но день недели не обновился, нажмите
F9для пересчёта формул или проверьте, не стоят ли формулы в режиме ручного обновления (Формулы → Параметры вычислений). - 📊 Некорректная сводная таблица: Если в сводной таблице отображаются пустые строки, убедитесь, что в столбце с днями недели нет ошибок или скрытых символов. Используйте
СЖПРОБЕЛЫдля очистки данных.
⚠️ Внимание: При импорте дат из внешних источников (например, CSV) Excel может неправильно интерпретировать формат. Всегда проверяйте, что даты отображаются в ячейках как даты, а не как текст. Для этого выделите столбец и посмотрите на формат в панели инструментов — он должен бытьДата, а неОбщийилиТекст.
═══
7. Альтернативные способы (без формул)
Если вам нужно узнать день недели одной даты и не хочется возиться с формулами, есть два быстрых способа:
- 🖱️ Ручной ввод с автозаполнением:
- Введите дату в ячейку (например,
A1). - Нажмите
Ctrl + 1(или правой кнопкой →Формат ячеек). - Выберите формат
Датаи в полеТипнайдите вариантдддд, дд мммм гггг(например,понедельник, 15 июля 1990).
- Введите дату в ячейку (например,
- Дважды кликните по ячейке с датой.
- Нажмите на иконку календаря 📅 рядом с полем ввода.
- Excel покажет день недели прямо в календаре.
Эти методы подходят для разовых проверок, но если вам нужно обработать много данных, лучше использовать формулы из предыдущих разделов.
═══
FAQ: Частые вопросы
Можно ли узнать день недели для даты до 1900 года?
В Excel даты до 1900 года не поддерживаются по умолчанию (из-за особенностей хранения дат). Однако вы можете использовать пользовательскую функцию на VBA или внешние инструменты. Альтернатива — ввести дату как текст и вручную рассчитать день недели с учётом того, что 1 января 1900 года в Excel считается днём №1.
Почему функция ДЕНЬНЕД возвращает другой номер, чем ожидалось?
Скорее всего, вы не указали второй аргумент (тип_возврата). По умолчанию воскресенье считается первым днём недели (1), а суббота — седьмым (7). Если вам нужно, чтобы неделя начиналась с понедельника, используйте =ДЕНЬНЕД(A2; 2).
Как узнать день недели для текущей даты?
Используйте функцию СЕГОДНЯ() в комбинации с ТЕКСТ:
=ТЕКСТ(СЕГОДНЯ(); "ДДДД")
Эта формула всегда будет возвращать актуальный день недели.
Можно ли автоматически обновлять дни недели при изменении даты?
Да, все формулы в Excel пересчитываются автоматически при изменении исходных данных. Если этого не происходит, проверьте настройки:
- Перейдите в
Формулы → Параметры вычислений. - Выберите
Автоматически(а неВручную).
Как экспортировать список дат с днями недели в Word или PDF?
Самый простой способ — скопировать таблицу в Word через буфер обмена (Ctrl + C → Ctrl + V). Для экспорта в PDF:
- Перейдите в
Файл → Экспорт → Создать PDF/XPS. - Выберите область таблицы (или весь лист).
- Нажмите
Опубликовать.
Убедитесь, что столбцы с датами и днями недели помещаются на страницу (при необходимости измените ориентацию на альбомную).