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

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

Разбивка дат по кварталам — одна из самых востребованных операций в Microsoft Excel среди финансовых аналитиков, бухгалтеров и менеджеров. Квартальная отчётность, планирование бюджетов, анализ продаж по периодам — во всех этих сценариях требуется быстро определить, к какому кварталу относится та или иная дата. Например, дата 15.03.2026 должна автоматически преобразовываться в «Q1 2026» или просто в цифру «1».

Вручную просматривать календарь и присваивать кварталы сотням строк — неэффективно. К счастью, в Excel есть минимум 5 способов автоматизировать этот процесс: от элементарных формул до гибких пользовательских функций на VBA. Выбор метода зависит от задачи: нужна ли вам просто цифра квартала, его текстовое обозначение (например, «2-й квартал»), или требуется динамическая сортировка данных по кварталам с учётом года.

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

Способ 1: Простая формула с функцией МЕСЯЦ

Самый базовый и универсальный метод — использование функции МЕСЯЦ() в комбинации с арифметическими операциями. Он подходит для 90% задач, где нужно получить номер квартала в виде числа от 1 до 4.

Формула выглядит так:

=ОКРУГЛВВЕРХ(МЕСЯЦ(A1)/3;0)

Где A1 — ячейка с датой. Логика проста: номер месяца делится на 3 (так как в квартале 3 месяца), а результат округляется до целого числа вверх. Например:

  • 📅 Январь (месяц 1): 1/3 ≈ 0.333 → округляется до 1
  • 📅 Апрель (месяц 4): 4/3 ≈ 1.333 → округляется до 2
  • 📅 Октябрь (месяц 10): 10/3 ≈ 3.333 → округляется до 4

Альтернативный вариант — использовать функцию ПОТОЛОК() вместо ОКРУГЛВВЕРХ():

=ПОТОЛОК(МЕСЯЦ(A1)/3;1)
⚠️ Внимание: Если в ячейке A1 не дата, а текст (например, «15 марта»), формула вернёт ошибку #ЗНАЧ!. Проверьте формат ячейки: он должен быть Дата, а не Общий или Текстовый.
📊 Какой способ определения квартала вы используете чаще?
Формулы с МЕСЯЦ/ОКРУГЛВВЕРХ
Функция ЧИСЛОНЕД
Пользовательская функция VBA
Условное форматирование
Другой

Способ 2: Функция ЧИСЛОНЕД для гибкого форматирования

Функция ЧИСЛОНЕД() (или CHOOSEROWS в английской версии) позволяет не только получить номер квартала, но и сразу вывести его в текстовом формате, например «Q1» или «I квартал». Это удобно для отчётов, где требуется не просто цифра, а читабельное обозначение.

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

=ЧИСЛОНЕД(ОКРУГЛВВЕРХ(МЕСЯЦ(A1)/3;0);"Q1";"Q2";"Q3";"Q4")

Здесь:

  • 📌 Первый аргумент — номер квартала (1–4), полученный по методу из Способа 1.
  • 📌 Остальные аргументы — текстовые значения для каждого квартала.

Примеры результатов:

Дата в A1ФормулаРезультат
10.01.2026=ЧИСЛОНЕД(ОКРУГЛВВЕРХ(МЕСЯЦ(A1)/3;0);"Q1";"Q2";"Q3";"Q4")Q1
15.05.2026=ЧИСЛОНЕД(ОКРУГЛВВЕРХ(МЕСЯЦ(A1)/3;0);"I кв.";"II кв.";"III кв.";"IV кв.")II кв.
30.11.2026=ЧИСЛОНЕД(ОКРУГЛВВЕРХ(МЕСЯЦ(A1)/3;0);"1-й";"2-й";"3-й";"4-й") & " квартал"4-й квартал

Преимущество этого метода — гибкость форматирования. Вы можете выводить кварталы на русском, английском, с римскими цифрами или даже добавлять год:

=ЧИСЛОНЕД(ОКРУГЛВВЕРХ(МЕСЯЦ(A1)/3;0);"Q1";"Q2";"Q3";"Q4") & "-" & ГОД(A1)

Результат для 15.03.2026: Q1-2026.

=ГОД(A1) & "-Q" & ОКРУГЛВВЕРХ(МЕСЯЦ(A1)/3;0)-->

Способ 3: Пользовательская функция VBA для сложных задач

Если вам регулярно приходится работать с кварталами в нестандартных форматах (например, «1-й квартал 2026 г.» или «I полугодие»), стоит создать собственную функцию на VBA. Это сэкономит время и уменьшит количество ошибок.

Откройте редактор VBA (Alt + F11), вставьте новый модуль (Insert → Module) и добавьте следующий код:

Function КВАРТАЛ_ТЕКСТ(дата As Date) As String

Dim квартал As Integer

квартал = Application.WorksheetFunction.RoundUp(Month(дата) / 3, 0)

Select Case квартал

Case 1: КВАРТАЛ_ТЕКСТ = "I квартал " & Year(дата) & " г."

Case 2: КВАРТАЛ_ТЕКСТ = "II квартал " & Year(дата) & " г."

Case 3: КВАРТАЛ_ТЕКСТ = "III квартал " & Year(дата) & " г."

Case 4: КВАРТАЛ_ТЕКСТ = "IV квартал " & Year(дата) & " г."

End Select

End Function

Теперь в Excel можно использовать эту функцию как стандартную:

=КВАРТАЛ_ТЕКСТ(A1)

Для даты 20.06.2026 результат будет: «II квартал 2026 г.».

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

  • 🔄 Многоразовость: однажды написанный код работает для любых дат.
  • 🎨 Гибкость: можно легко изменить формат вывода под свои нужды.
  • 🚀 Автоматизация: функция интегрируется в другие формулы (например, в СУММЕСЛИ).
⚠️ Внимание: Если при вызове функции вы видите ошибку #ИМЯ?, убедитесь, что:
  1. Макросы в книге разрешены (проверьте в Файл → Параметры → Центр управления безопасностью).
  2. Файл сохранён в формате .xlsm (с поддержкой макросов), а не .xlsx.
Как добавить свою функцию в автозаполнение Excel?

Чтобы ваша функция КВАРТАЛ_ТЕКСТ отображалась в подсказках при вводе (как стандартные СУММ или СРЗНАЧ), добавьте перед её объявлением строку:

Attribute КВАРТАЛ_ТЕКСТ.VB_Description = "Возвращает квартал в текстовом формате с годом"

После этого сохраните книгу и перезапустите Excel. Теперь при вводе =КВ функция будет подсказана в выпадающем списке.

Способ 4: Условное форматирование для визуализации кварталов

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

Алгоритм действий:

  1. Выделите диапазон с датами (например, A1:A100).
  2. Перейдите на вкладку Главная → Условное форматирование → Создать правило.
  3. Выберите тип правила: Использовать формулу для определения форматируемых ячеек.
  4. Введите формулу для 1-го квартала:
    =И(МЕСЯЦ(A1)>=1;МЕСЯЦ(A1)<=3)

    Установите цвет заливки (например, зелёный).

  5. Повторите шаги 3–4 для остальных кварталов, меняя месяцы:
    • 🟢 2-й квартал: =И(МЕСЯЦ(A1)>=4;МЕСЯЦ(A1)<=6)
    • 🟡 3-й квартал: =И(МЕСЯЦ(A1)>=7;МЕСЯЦ(A1)<=9)
    • 🔴 4-й квартал: =И(МЕСЯЦ(A1)>=10;МЕСЯЦ(A1)<=12)

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

  • 📊 Аналитических дашбордов.
  • 📅 Производственных календарей.
  • 💰 Финансовых отчётов с визуальным разделением периодов.

Выделить диапазон с датами|Создать правило с формулой для 1-го квартала|Задать цвет заливки|Повторить для 2–4 кварталов|Проверить корректность на тестовых датах-->

Способ 5: Power Query для обработки больших массивов данных

Если вы работаете с тысячами строк (например, импортируете данные из или CRM), ручное присвоение кварталов неэффективно. В этом случае поможет Power Query — инструмент для преобразования данных, встроенный в Excel 2016 и новее.

Пошаговая инструкция:

  1. Выделите таблицу с датами и нажмите Данные → Из таблицы/диапазона (или Get & Transform → From Table/Range в английской версии).
  2. В открывшемся редакторе Power Query выделите столбец с датами.
  3. Перейдите на вкладку Добавить столбец → Пользовательский столбец.
  4. Введите название нового столбца (например, «Квартал») и формулу:
    =Number.RoundUp(Date.Month([Дата])/3)

    где [Дата] — название вашего столбца.

  5. Нажмите ОК, затем Закрыть и загрузить.

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

  • Производительность: обрабатывает миллионы строк без тормозов.
  • 🔄 Автоматизация: при обновлении исходных данных кварталы пересчитываются автоматически.
  • 🔗 Интеграция: можно объединять с другими источниками (SQL, CSV, JSON).

Если нужно вывести не номер квартала, а его текстовое обозначение, используйте в Power Query такой код:

= "Q" & Number.RoundUp(Date.Month([Дата])/3) & " " & Date.Year([Дата])

Результат для 15.07.2026: «Q3 2026».

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

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

ОшибкаПричинаРешение
#ЗНАЧ!Ячейка содержит текст, а не дату.Проверьте формат ячейки (Формат → Дата) или используйте =ДАТАЗНАЧ(A1) для преобразования текста в дату.
#ИМЯ?Опечатка в названии функции или неактивны макросы.Проверьте синтаксис и разрешения для макросов (Файл → Параметры → Центр управления безопасностью).
Некорректный номер квартала (например, 0 или 5)Формула не учитывает округление или использует ОКРУГЛВНИЗ.Замените на ОКРУГЛВВЕРХ или ПОТОЛОК.
Кварталы определяются с ошибкой на 1 (например, апрель как Q1)Ошибка в логике деления (например, используется МЕСЯЦ(A1)/4 вместо /3).Всегда делите на 3 — по количеству месяцев в квартале.

Ещё одна частая проблема — несовпадение финансового и календарного года. Например, в некоторых компаниях финансовый год начинается с 1 июля. В этом случае стандартные формулы не подойдут, и придётся использовать VBA или корректировать логику:

=ЕСЛИ(МЕСЯЦ(A1)>=7;ОКРУГЛВВЕРХ(МЕСЯЦ(A1)/3;0)-2;ОКРУГЛВВЕРХ(МЕСЯЦ(A1)/3;0)+2)

Эта формула сдвигает кварталы на 6 месяцев (финансовый год с июля по июнь).

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

Можно ли определить квартал без формул, только через форматирование?

Да, но с ограничениями. Вы можете использовать Условное форматирование (см. Способ 4), чтобы визуально выделить кварталы, но для вывода номера или текста квартала в отдельный столбец формулы или VBA всё равно потребуются.

Как посчитать сумму продаж по кварталам?

Используйте функцию СУММЕСЛИ с критерием по кварталу. Пример:

=СУММЕСЛИ($B$2:$B$100;1;$C$2:$C$100)

Где:

  • $B$2:$B$100 — столбец с номерами кварталов (полученными по формулам из этой статьи).
  • 1 — номер квартала, по которому считаем сумму.
  • $C$2:$C$100 — столбец с суммами продаж.

Для динамического подсчёта по всем кварталам используйте СУММЕСЛИМН или сводную таблицу.

Почему функция ЧИСЛОНЕД возвращает ошибку #Н/Д?

Ошибка #Н/Д в ЧИСЛОНЕД возникает, если:

  1. Первый аргумент (номер квартала) выходит за пределы 1–4 (например, 0 или 5). Проверьте формулу расчёта квартала.
  2. Вы указали меньше 4-х текстовых аргументов (для кварталов нужно ровно 4 значения).

Решение: добавьте обработку ошибок через ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(ЧИСЛОНЕД(ОКРУГЛВВЕРХ(МЕСЯЦ(A1)/3;0);"Q1";"Q2";"Q3";"Q4");"Ошибка")
Как сделать автообновление кварталов при изменении дат?

Все формулы в Excel (кроме VBA) обновляются автоматически при изменении исходных данных. Если кварталы не пересчитываются:

  • 🔄 Проверьте, не стоит ли в книге ручной режим пересчёта (Формулы → Параметры вычислений → Автоматически).
  • 📥 Если данные импортируются из внешнего источника, обновите соединение (Данные → Обновить все).
  • 🖥️ Для Power Query нажмите Данные → Обновить.
Можно ли использовать эти методы в Google Sheets?

Да, все формулы из этой статьи работают и в Google Таблицах, за исключением:

  • VBA — вместо него используйте Apps Script.
  • ЧИСЛОНЕД — в Google Sheets аналогичная функция называется CHOOSE.

Пример для Google Sheets:

=CHOOSE(ROUNDUP(MONTH(A1)/3;0);"Q1";"Q2";"Q3";"Q4")