Работа с датами в Microsoft Excel — одна из самых востребованных задач при анализе данных.hether вы ведёте учёт продаж, контролируете выполнение задач по срокам или анализируете временные тренды, умение подсчитывать количество записей по датам экономит часы рутинной работы. Но как правильно организовать такие вычисления, если в таблице сотни строк, а даты записаны в разных форматах? И почему стандартная функция СЧЁТ часто даёт неверные результаты?
Многие пользователи допускают критическую ошибку: пытаются подсчитать даты как текстовые значения, не учитывая, что Excel хранит их в виде числовых кодов. Это приводит к тому, что формулы игнорируют часть данных или выдают #ЗНАЧ!. В этой статье мы разберём 5 надёжных методов — от элементарных до профессиональных, — которые покрывают 90% практических сценариев. Вы научитесь не только считать количество дат в заданном диапазоне, но и группировать их по дням недели, месяцам или кварталам, а также обрабатывать динамические данные с помощью сводных таблиц.
Особое внимание уделим типичным «подводным камням»:
- 🔹 Несоответствие форматов: почему
01.12.2023и1-дек-23воспринимаются как разные даты. - 🔹 Пустые ячейки: как их исключить из подсчёта, не искажая результаты.
- 🔹 Временные метки: что делать, если в данных есть время (
10:30), а вам нужна только дата.
1. Базовый метод: функция СЧЁТЕСЛИ для точного совпадения даты
Если вам нужно посчитать, сколько раз в столбце встречается конкретная дата (например, 15.05.2026), функция СЧЁТЕСЛИ — самый простой инструмент. Она проверяет каждое значение в диапазоне на соответствие заданному критерию и возвращает количество совпадений.
Синтаксис:
=СЧЁТЕСЛИ(диапазон; критерий)
Где:
- 📌
диапазон— столбец с датами (например,A2:A100). - 📌
критерий— ячейка с искомой датой или дата в кавычках (например,"15.05.2026").
Пример: Подсчитаем, сколько заказов было сделано 20 мая 2026 года в столбце B:
=СЧЁТЕСЛИ(B2:B100; "20.05.2026")
⚠️ Внимание: Если дата в критерии записана как текст (например, скопирована из внешнего источника), Excel может не распознать её как дату. Всегда проверяйте формат ячейки с критерием — он должен бытьДата, а неОбщийилиТекстовый.
Чтобы избежать ошибок, лучше ссылаться на ячейку с датой, а не вводить её вручную:
=СЧЁТЕСЛИ(B2:B100; D2)
где D2 — ячейка с датой 20.05.2026.
2. Диапазон дат: СЧЁТЕСЛИМН для интервалов
Когда требуется посчитать количество дат в промежутке (например, с 1 по 15 мая 2026), стандартная СЧЁТЕСЛИ бессильна. Здесь пригодится её «младшая сестра» — СЧЁТЕСЛИМН, которая умеет работать с несколькими условиями одновременно.
Синтаксис:
=СЧЁТЕСЛИМН(диапазон_дат; ">="&нач_дата; диапазон_дат; "<="&кон_дата)
Пример: Подсчитаем количество продаж с 1 по 15 мая 2026 года в столбце C:
=СЧЁТЕСЛИМН(C2:C100; ">="&ДАТА(2026;5;1); C2:C100; "<="&ДАТА(2026;5;15))
Почему здесь используется функция ДАТА? Она гарантирует, что Excel воспримет аргументы как даты, а не как текст. Альтернативный вариант — ссылаться на ячейки с границами диапазона:
=СЧЁТЕСЛИМН(C2:C100; ">="&E2; C2:C100; "<="&F2)
где E2 = 01.05.2026, а F2 = 15.05.2026.
| Формула | Описание | Пример результата |
|---|---|---|
=СЧЁТЕСЛИМН(A2:A100; ">="&D2; A2:A100; "<="&E2) |
Подсчёт дат в закрытом интервале [D2; E2] | 12 (количество дат с 01.05 по 15.05) |
=СЧЁТЕСЛИМН(A2:A100; ">="&D2; A2:A100; "<"&E2) |
Подсчёт дат в полуоткрытом интервале [D2; E2) | 11 (исключает конечную дату E2) |
=СЧЁТЕСЛИМН(A2:A100; ">2023-12-31") |
Подсчёт дат позже 31.12.2023 (без верхней границы) | 45 |
⚠️ Внимание: Если в диапазоне есть пустые ячейки или текстовые значения (например, "Н/Д"),СЧЁТЕСЛИМНпроигнорирует их автоматически. Но если там есть ошибки (#ЗНАЧ!), формула вернёт#ЗНАЧ!. Чтобы этого избежать, используйтеЕСЛИОШИБКА:=ЕСЛИОШИБКА(СЧЁТЕСЛИМН(...); 0)3. Группировка по месяцам, кварталам или годам
Часто аналитикам нужно посчитать не конкретные даты, а количество записей по месяцам, кварталам или годам. Например, сколько заказов было в январе 2026 vs феврале 2026. Для этого комбинируем
СЧЁТЕСЛИс функциями извлечения компонентов даты:
- 📅
МЕСЯЦ— возвращает номер месяца (1–12).- 📅
ГОД— возвращает год (например, 2026).- 📅
ДЕНЬНЕД— возвращает день недели (1–7, где 1 = воскресенье).Пример 1: Подсчёт заказов по месяцам. Допустим, даты в столбце
B, а месяцы перечислены в столбцеD(январь = 1, февраль = 2 и т. д.):=СЧЁТЕСЛИ(МЕСЯЦ(B2:B100); D2)Пример 2: Подсчёт по годам (например, для многолетних данных):
=СЧЁТЕСЛИ(ГОД(B2:B100); 2026)Критическая деталь: функции
МЕСЯЦ/ГОДне работают с массивами напрямую в старых версиях Excel (до 2019). Чтобы формула заработала, нажмитеCtrl+Shift+Enter(это создаст формулу массива).Для Excel 365 или Excel 2021 подойдёт более элегантное решение с
ФИЛЬТРиСТРОКА:=СЧЁТ(ФИЛЬТР(МЕСЯЦ(B2:B100); МЕСЯЦ(B2:B100)=D2))Убедиться, что столбец с датами имеет формат
Дата|Проверить отсутствие пустых ячеек или текста|Создать вспомогательный столбец с номерами месяцев/кварталов (если нужно)|ИспользоватьCtrl+Shift+Enterдля формул массива в Excel 2016 и старше-->4. Продвинутый подход:
СУММПРОИЗВдля сложных условийФункция
СУММПРОИЗВ— это «швейцарский нож» для работы с датами. Она позволяет:
- 🔢 Подсчитывать записи по нескольким критериям (например, дата + категория товара).
- 🔢 Работать с динамическими диапазонами.
- 🔢 Избегать промежуточных столбцов.
Пример: Подсчитаем количество продаж товара «Ноутбук» (
C2:C100) в мае 2026 года (B2:B100):=СУММПРОИЗВ(--(МЕСЯЦ(B2:B100)=5); --(ГОД(B2:B100)=2026); --(C2:C100="Ноутбук"))Разберём формулу:
МЕСЯЦ(B2:B100)=5— проверяет, относится ли дата к маю (возвращаетИСТИНА/ЛОЖЬ).--— двойное отрицание преобразуетИСТИНА/ЛОЖЬв1/0.СУММПРОИЗВперемножает массивы и суммирует единицы (т.е. считает совпадения).Для Excel 365 эту формулу можно упростить с помощью
ФИЛЬТР:=СЧЁТ(ФИЛЬТР(B2:B100; (МЕСЯЦ(B2:B100)=5)(ГОД(B2:B100)=2026)(C2:C100="Ноутбук")))⚠️ Внимание:СУММПРОИЗВне любит текстовые значения в числовых массивах. Если в диапазонеB2:B100есть ячейки с текстом (например, "Нет данных"), оберните формулу вЕСЛИОШИБКА:=ЕСЛИОШИБКА(СУММПРОИЗВ(...); 0)Почему
СУММПРОИЗВлучшеСЧЁТЕСЛИМНдля больших данных?
СУММПРОИЗВобрабатывает массивы целиком, не перебирая каждую ячейку отдельно. Это ускоряет вычисления в 2–5 раз при работе с диапазонами более 10 000 строк. Кроме того, она позволяет комбинировать условия без ограничения на количество критериев (в отличие отСЧЁТЕСЛИМН, где максимальное число пар "диапазон-критерий" — 127).5. Сводные таблицы: автоматический анализ без формул
Если вам нужно не только посчитать количество дат, но и визуализировать их распределение по периодам, сводные таблицы — оптимальное решение. Они позволяют:
- 📊 Группировать даты по дням, месяцам, кварталам или годам.
- 📊 Фильтровать данные по дополнительным критериям (например, по региону или категории).
- 📊 Строить графики на основе группировки.
Пошаговая инструкция:
- Выделите исходную таблицу с данными (включая заголовки).
- Перейдите на вкладку
Вставка→Сводная таблица.- В поле
Строкиперетащите столбец с датами.- В поле
Значенияперетащите тот же столбец (или любой другой числовой столбец, если нужно посчитать сумму). Excel автоматически подсчитает количество записей.- Щёлкните правой кнопкой по любой дате в сводной таблице →
Группировка→ выберитеМесяцыилиКварталы.Преимущество сводных таблиц — динамичность. Если исходные данные изменятся, достаточно обновить таблицу (
ПКМ → Обновить), и все подсчёты пересчитаются автоматически.6. Обработка дат с временем:
ЦЕЛОЕиДЕНЬЧастая проблема: в данных даты записаны вместе со временем (например,
15.05.2026 14:30), а вам нужно посчитать только даты, игнорируя часы и минуты. В этом случае стандартные функции (СЧЁТЕСЛИ,СЧЁТЕСЛИМН) не сработают, так как15.05.2026 00:00и15.05.2026 23:59для них — разные значения.Решение 1: Используйте функцию
ЦЕЛОЕ, которая отсекает дробную часть (время):=СЧЁТЕСЛИ(ЦЕЛОЕ(B2:B100); ДАТА(2026;5;15))Решение 2: Функция
ДЕНЬв паре сМЕСЯЦ/ГОД(если нужно группировать по дням):=СУММПРОИЗВ(--(ДЕНЬ(B2:B100)=15); --(МЕСЯЦ(B2:B100)=5); --(ГОД(B2:B100)=2026))Решение 3 (для Excel 365): Функция
ДАТАЗНАЧс форматированием:=СЧЁТЕСЛИ(ДАТАЗНАЧ(ТЕКСТ(B2:B100; "дд.мм.гггг")); "15.05.2026")
Проблема Решение Пример формулы Дата + время в одной ячейке ЦЕЛОЕилиДЕНЬ/МЕСЯЦ/ГОД=СЧЁТЕСЛИ(ЦЕЛОЕ(B2:B100); D2)Текстовый формат даты (например, "May 15, 2026") ДАТАЗНАЧ+ТЕКСТ=СЧЁТЕСЛИ(ДАТАЗНАЧ(B2:B100); D2)Разные форматы дат в одном столбце Вспомогательный столбец с =ДАТАЗНАЧ(ПОДСТАВИТЬ(...))=ДАТАЗНАЧ(ПОДСТАВИТЬ(B2; "."; "/"))7. Динамические диапазоны:
ИНДЕКС+ПОИСКПОЗдля автоматического обновленияЕсли ваша таблица постоянно пополняется новыми данными, статичные диапазоны (например,
A2:A100) станут проблемой: формулы не будут учитывать новые строки. Решение — динамические диапазоны, которые автоматически расширяются.Способ 1: Используйте
Таблицы Excel(Ctrl+T). При добавлении строк в таблицу все формулы внутри неё обновляются автоматически.Способ 2: Создайте именованный диапазон с формулой:
- Перейдите на вкладку
Формулы→Диспетчер имён→Создать.- Введите имя (например,
ДатаДиапазон).- В поле
Диапазонвведите:=СМЕЩ(Лист1!$A$2;0;0;СЧЁТЗ(Лист1!$A:$A)-1)Эта формула берёт все заполненные ячейки в столбце
A, начиная сA2.Пример использования:
=СЧЁТЕСЛИ(ДатаДиапазон; ">="&D2)Способ 3 (для Excel 365): Функция
ДИАПАЗОН:=СЧЁТЕСЛИ(ДИАПАЗОН(A2:A1000); D2)FAQ: Ответы на частые вопросы
Как посчитать количество уникальных дат в столбце?
Используйте формулу массива (введите и нажмите
Ctrl+Shift+Enter):=СЧЁТ(1/ЧАСТОТА(ЕСЛИ(B2:B100<>""; B2:B100); ЕСЛИ(B2:B100<>""; B2:B100)))Для Excel 365 подойдёт проще:
=СЧЁТ(УНИК(ФИЛЬТР(B2:B100; B2:B100<>"")))Почему
СЧЁТЕСЛИне считает даты, хотя они есть в таблице?Скорее всего, даты хранятся как текст. Проверьте формат ячеек (
Ctrl+1) и при необходимости преобразуйте текст в даты с помощьюДАТАЗНАЧилиТЕКСТ.ПРЕОБР.Также убедитесь, что в критерии используется тот же формат даты, что и в данных. Например,
"15.05.2026"и"15/05/2026"для Excel — разные значения.Как посчитать количество рабочих дней между двумя датами?
Используйте функцию
ЧИСТРАБДНИ:=ЧИСТРАБДНИ(нач_дата; кон_дата; [праздники])Где
[праздники]— необязательный диапазон с датами выходных дней. Например:=ЧИСТРАБДНИ(D2; E2; Праздники!$A$2:$A$10)Можно ли посчитать количество дат, выпадающих на выходные?
Да, с помощью
СУММПРОИЗВиДЕНЬНЕД:=СУММПРОИЗВ(--(ДЕНЬНЕД(B2:B100)=7); --(ДЕНЬНЕД(B2:B100)=1))Здесь
7— воскресенье,1— понедельник (в некоторых локалях1= воскресенье, а2= понедельник; проверьте с помощью=ДЕНЬНЕД("01.01.2026")).Как посчитать количество дат в текущем месяце?
Используйте комбинацию
МЕСЯЦ,ГОДиСЕГОДНЯ:=СЧЁТЕСЛИМН(B2:B100; ">="&ДАТА(ГОД(СЕГОДНЯ()); МЕСЯЦ(СЕГОДНЯ()); 1); B2:B100; "<="&ДАТА(ГОД(СЕГОДНЯ()); МЕСЯЦ(СЕГОДНЯ())+1; 0))Эта формула вернёт количество дат с 1-го числа текущего месяца по последний день месяца.