Работа с датами в Excel: от извлечения компонентов до календаря месяца

Иван Корнев·11.04.2026·3 мин

Чтобы получить год, месяц или день недели из даты в Excel, используйте встроенные функции ГОД, МЕСЯЦ и ДЕНЬНЕД. Например, если дата находится в ячейке A1, формула =ГОД(A1) вернет число года, а =ТЕКСТ(A1; "dddd") выведет полное название дня недели. Для создания полного списка дней конкретного месяца достаточно сгенерировать последовательность, начиная с первого числа, прибавляя единицу к предыдущей дате.

Базовые функции для работы с датой

В Excel каждая дата хранится как порядковый номер, но для анализа часто требуется выделить отдельные компоненты. Ниже приведены основные формулы для извлечения частей даты. Предположим, что исходная дата записана в ячейке A1.

КомпонентФормулаРезультат (для 15.04.2026)Описание
Год=ГОД(A1)2026Возвращает четырехзначное число года.
Месяц=МЕСЯЦ(A1)4Возвращает номер месяца (1–12).
День месяца=ДЕНЬ(A1)15Возвращает номер дня в месяце (1–31).
День недели (число)=ДЕНЬНЕД(A1; 2)3Возвращает число от 1 (пн) до 7 (вс). Аргумент 2 задает начало недели с понедельника.
День недели (текст)=ТЕКСТ(A1; "dddd")средаПолное название дня недели. Используйте "ddd" для сокращения (ср).

Функция ДЕНЬНЕД по умолчанию считает воскресенье первым днем недели (возвращает 1). Чтобы неделя начиналась с понедельника (как принято в РФ), обязательно используйте второй аргумент 2: =ДЕНЬНЕД(дата; 2).

Создание списка всех дней месяца

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

Способ 1: Классическое протягивание (универсальный)

Этот метод работает в любой версии Excel.

  1. В ячейку B1 введите формулу первого дня месяца на основе даты из A1: =ДАТА(ГОД(A1); МЕСЯЦ(A1); 1)
  2. В ячейку B2 введите формулу прибавления одного дня: =B1 + 1
  3. Протяните формулу из B2 вниз.
  4. Чтобы список автоматически обрывался в конце месяца, измените формулу во второй ячейке (B2) на следующую и протяните её вниз до появления пустых ячеек: =ЕСЛИ(МЕСЯЦ(B1+1)=МЕСЯЦ(B1); B1+1; "")

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

Способ 2: Динамические массивы (Excel 365 / 2021+)

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

=ДАТА(ГОД(A1); МЕСЯЦ(A1); 1) + ПОСЛЕДОВ(КОНЕЦМЕСЯЦА(A1;0) - ДАТА(ГОД(A1); МЕСЯЦ(A1); 1))
  • КОНЕЦМЕСЯЦА находит последнее число месяца.
  • ПОСЛЕДОВ генерирует необходимое количество чисел (дней).
  • Сумма создает массив дат, который автоматически «разливается» по соседним ячейкам вниз.

Формат отображения. Если вместо даты вы видите числа (например, 45392), выделите столбец с датами, нажмите Ctrl+1 и выберите формат Дата.

Фильтрация рабочих и выходных дней

Получив список дней, часто требуется отделить рабочие дни от выходных или праздников.

Выделение выходных (суббота и воскресенье)

Используя функцию ДЕНЬНЕД с аргументом 2 (где 6 — суббота, 7 — воскресенье), создайте фильтр. Если список дней начинается в B1, в соседнем столбце C1 введите: =ЕСЛИ(ИЛИ(ДЕНЬНЕД(B1; 2)>5); B1; "") Протяните формулу вниз. В столбце останутся только даты выходных.

Выделение рабочих дней (понедельник – пятница)

Аналогично, но с условием «меньше или равно 5»: =ЕСЛИ(ДЕНЬНЕД(B1; 2)<=5; B1; "")

Учет праздников

Если у вас есть список праздничных дат (например, в диапазоне E1:E10), исключите их из рабочих дней: =ЕСЛИ(И(ДЕНЬНЕД(B1; 2)<=5; СЧЁТЕСЛИ($E$1:$E$10; B1)=0); B1; "")

Частые ошибки

  • Результат — число вместо даты.
    • Причина: Ячейка имеет общий числовой формат.
    • Решение: Примените формат «Дата» через меню формата ячеек.
  • Неверный день недели.
    • Причина: Использование ДЕНЬНЕД без второго аргумента. По умолчанию воскресенье = 1.
    • Решение: Всегда указывайте ; 2 для российской системы (Пн=1... Вс=7).
  • Список дней не останавливается.
    • Причина: Простое протягивание +1 без условия остановки.
    • Решение: Используйте формулу с ЕСЛИ и проверкой месяца или функцию КОНЕЦМЕСЯЦА.

FAQ

Как быстро узнать последний день текущего месяца? Используйте функцию =КОНЕЦМЕСЯЦА(СЕГОДНЯ(); 0). Аргумент 0 означает конец текущего месяца, 1 — следующего и т.д.

Можно ли получить название месяца прописью? Да, функцией ТЕКСТ: =ТЕКСТ(A1; "мммм") вернет «апрель», а =ТЕКСТ(A1; "ммм") — «апр».

Как посчитать количество рабочих дней в месяце? Используйте функцию ЧИСТРАБДНИ. Пример: =ЧИСТРАБДНИ(ДАТА(2026;4;1); КОНЕЦМЕСЯЦА(ДАТА(2026;4;1);0)).