Работа с датами в Microsoft Excel — одна из самых востребованных задач среди аналитиков, бухгалтеров и менеджеров. Часто требуется узнать, сколько раз встречается конкретная дата в таблице: будь то сроки оплаты, даты заключения договоров или дни рождения сотрудников. Казалось бы, простая операция, но многие пользователи теряются, когда нужно посчитать не просто количество ячеек, а именно те, что содержат точную дату или попадают в заданный диапазон.
В этой статье мы разберём 5 проверенных способов подсчёта ячеек с датами — от базовых функций СЧЁТЕСЛИ до продвинутых инструментов вроде Power Query. Вы узнаете, как избежать типичных ошибок (например, когда Excel воспринимает дату как текст), как работать с динамическими диапазонами и даже как автоматизировать процесс с помощью VBA. А в конце вас ждёт FAQ-блок с ответами на самые частые вопросы по теме.
Если вы никогда не работали с датами в Excel, не переживайте: первые два метода подойдут даже новичкам. Опытным пользователям будут полезны разделы про условное форматирование и Power Query — эти инструменты экономят часы при обработке больших массивов данных. Готовы начать? Тогда приступим!
1. Базовый метод: функция СЧЁТЕСЛИ для точной даты
Самый простой способ посчитать ячейки с конкретной датой — использовать функцию СЧЁТЕСЛИ (или COUNTIF в английской версии). Она подходит, когда вам нужно найти точные совпадения, например, сколько раз в таблице встречается 15.05.2026.
Формула выглядит так:
=СЧЁТЕСЛИ(диапазон; критерий)
Где:
- 📌 диапазон — столбец или группа ячеек с датами (например,
A2:A100) - 🗓️ критерий — искомая дата в формате, который Excel распознаёт как дату (например,
"15.05.2026"или ссылка на ячейку с датой, напримерD2)
Пример: если даты хранятся в столбце B, а искомую дату вы указали в ячейке E1, формула будет:
=СЧЁТЕСЛИ(B:B; E1)
Важный нюанс: если критерий — это текстовая строка (например, "15.05.2026"), обязательно берите её в кавычки. Если же вы ссылаетесь на ячейку с датой, кавычки не нужны.
⚠️ Внимание: ФункцияСЧЁТЕСЛИне учитывает форматирование. Если в ячейке отображается15 мая, но фактически там хранится дата15.05.2026, формула её посчитает. Но если это текст (например, результат функцииТЕКСТ), то нет.
2. Подсчёт дат в диапазоне: СЧЁТЕСЛИМН и операторы сравнения
Что делать, если нужно посчитать не точную дату, а все ячейки в определённом промежутке? Например, сколько заказов было сделано с 01.01.2026 по 31.03.2026? Здесь поможет функция СЧЁТЕСЛИМН (или COUNTIFS), которая позволяет задавать несколько условий.
Синтаксис:
=СЧЁТЕСЛИМН(диапазон; ">="&нач_дата; "<="&кон_дата)
Пример для диапазона B2:B100 и дат в ячейках D1 (начало) и E1 (конец):
=СЧЁТЕСЛИМН(B2:B100; ">="&D1; "<="&E1)
Альтернативный вариант — использовать операторы прямо в критериях:
=СЧЁТЕСЛИМН(B2:B100; ">01.01.2026"; "<=31.03.2026")
- 📅 ">=" — больше или равно (включает начальную дату)
- 📅 "<=" — меньше или равно (включает конечную дату)
- 📅 ">" и "<" — строго больше/меньше (исключают граничные даты)
Критическая ошибка многих пользователей: забывать про амперсанд (&) при объединении оператора и даты. Без него Excel воспримет ">=01.01.2026" как текст, а не как условие.
3. Продвинутый подход: формулы массива для сложных условий
Если вам нужно посчитать ячейки с датами, которые удовлетворяют нескольким независимым условиям (например, даты в диапазоне И определённый день недели), пригодятся формулы массива. Они позволяют обрабатывать данные без промежуточных столбцов.
Пример: подсчитаем, сколько дат в столбце A2:A100 попадают в 2026 год И приходятся на понедельник. Формула:
=СУММПРОИЗВ(--(ГОД(A2:A100)=2026); --(ДЕНЬНЕД(A2:A100;2)=1))
Разберём по частям:
- 🔢
ГОД(A2:A100)=2026— проверяет, что год равен 2026 - 📅
ДЕНЬНЕД(A2:A100;2)=1— проверяет, что день недели — понедельник (аргумент2означает, что неделя начинается с понедельника) - 🔄
--— двойное отрицание преобразуетИСТИНА/ЛОЖЬв1/0для суммирования - ➕
СУММПРОИЗВ— складывает все единицы (истинные условия)
Эта формула должна вводиться как формула массива (в старых версиях Excel — нажать Формулы массива пересчитывают весь диапазон заново при любом изменении в книге, поэтому на больших данных (10 000+ строк) они могут тормозить. Для оптимизации используйте Ctrl+Shift+Enter, в новых — просто Enter).
Почему формулы массива медленнее обычных?
СЧЁТЕСЛИМН или Power Query
Формулы массива — мощный инструмент, но они имеют минусы:
⚠️ Внимание: В Excel 365 и 2019 формулы массива работают динамически, но в старых версиях (2016 и ранее) они требуют ручного подтверждения Ctrl+Shift+Enter. Кроме того, такие формулы могут значительно замедлить файл при большом объёме данных.
4. Визуальный метод: условное форматирование + фильтр
Если вам нужно не только посчитать даты, но и визуально выделить их в таблице, комбинация Условного форматирования и Фильтра станет отличным решением. Этот метод нагляден и не требует знания формул.
Шаг 1. Условное форматирование
- Выделите диапазон с датами (например,
B2:B100). - Перейдите на вкладку
Главная→Условное форматирование→Создать правило. - Выберите
Форматировать только ячейки, которые содержат. - В поле
Форматировать только ячейки сукажите:- 📅 Значение:
равно - 📅 Форматировать по этому правилу: введите искомую дату (например,
15.05.2026) или укажите ячейку с датой
- 📅 Значение:
ОК.Шаг 2. Фильтрация и подсчёт
- Добавьте фильтр к таблице: выделите заголовки →
Данные→Фильтр. - Откройте выпадающий список в столбце с датами →
Фильтр по цвету→ выберите цвет, который задали на первом шаге. - Excel отобразит только ячейки с нужной датой. Количество строк в фильтре — это и есть искомое значение.
Преимущество метода: вы сразу видите какие именно даты попали в подсчёт. Недостаток — требует ручных действий при изменении критериев.
Убедитесь, что столбец содержит именно даты, а не текст|Проверьте, что формат ячеек — "Дата", а не "Общий"|Сохраните файл перед массовыми изменениями|Отмените предыдущие правила форматирования, если они мешают-->
5. Автоматизация: Power Query для больших данных
Если вы работаете с тысячами строк (например, выгружаете данные из 1С или CRM), ручные методы становятся неэффективными. Здесь на помощь придёт Power Query — инструмент для преобразования и анализа данных, встроенный в Excel 2016 и новее.
Пошаговая инструкция:
- Выделите таблицу с датами →
Данные→Из таблицы/диапазона(илиGet Data → From Table/Rangeв английской версии). - В открывшемся редакторе Power Query выберите столбец с датами.
- Нажмите
Главная→Фильтр→Фильтры даты/времени→Равно. - Введите искомую дату (например,
15.05.2026) и нажмитеОК. - Вернитесь на вкладку
Главная→Закрыть и загрузить в...→ выберитеТаблицаи укажите, куда загрузить отфильтрованные данные. - В новой таблице будет только нужное количество строк. Чтобы узнать их число, используйте
СЧЁТЗ: - 🔄 Автоматически обновляет данные при изменении исходной таблицы (достаточно нажать
Обновить все) - 📊 Не нагружает файл, так как обработка происходит во внешнем движке
- 🛠️ Позволяет комбинировать несколько условий (например, дата + категория товара)
=СЧЁТЗ(диапазон_новой_таблицы)
Power Query удобен тем, что:
⚠️ Внимание: Если исходные данные содержат пустые ячейки или текст вместо дат, Power Query может воспринять их как ошибки. Перед фильтрацией очистите данные с помощью Удалить строки → Удалить пустые.
6. Макросы: как посчитать даты с помощью VBA
Для тех, кто готов автоматизировать рутинные задачи, VBA (Visual Basic for Applications) предлагает гибкие решения. Например, можно написать макрос, который будет подсчитывать даты по заданному критерию и выводить результат в отдельную ячейку.
Пример макроса для подсчёта точной даты:
Sub CountDates()
Dim rng As Range
Dim count As Long
Dim searchDate As Date
' Указываем диапазон для поиска (столбец B)
Set rng = Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row)
' Задаём искомую дату (например, из ячейки D1)
searchDate = Range("D1").Value
' Считаем количество ячеек с датой
count = Application.WorksheetFunction.CountIf(rng, searchDate)
' Выводим результат в ячейку E1
Range("E1").Value = count
End Sub
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Закройте редактор и запустите макрос через
Вид → Макросы → CountDates → Выполнить.
Преимущества VBA:
- ⚡ Мгновенный подсчёт даже для миллионов строк
- 🔧 Гибкость: можно добавить дополнительные условия (например, игнорировать выходные)
- 📅 Интеграция с другими задачами (например, автоматически отправлять отчёт по email)
⚠️ Внимание: Перед запуском макросов убедитесь, что в настройках Excel разрешено их выполнение: Файл → Параметры → Центр управления безопасностью → Параметры центра → Включить все макросы. Не запускайте макросы из ненадёжных источников!
Сравнение методов: какой выбрать?
Выбор способа подсчёта дат зависит от объёма данных, ваших навыков и задачи. В таблице ниже — сравнение всех рассмотренных методов:
| Метод | Сложность | Скорость | Гибкость | Когда использовать |
|---|---|---|---|---|
СЧЁТЕСЛИ |
⭐ | ⚡⚡⚡ | Только точные совпадения | Маленькие таблицы, простые задачи |
СЧЁТЕСЛИМН |
⭐⭐ | ⚡⚡⚡ | Диапазоны дат, несколько условий | Средние таблицы, аналитика по периодам |
| Формулы массива | ⭐⭐⭐ | ⚡⚡ | Сложные условия (день недели + месяц) | Продвинутый анализ, если нет Power Query |
| Условное форматирование | ⭐ | ⚡ | Визуализация + подсчёт | Нужно выделить даты в таблице |
| Power Query | ⭐⭐ | ⚡⚡⚡⚡ | Любые условия, очистка данных | Большие файлы, регулярные отчёты |
| VBA | ⭐⭐⭐⭐ | ⚡⚡⚡⚡⚡ | Автоматизация, интеграция с другими задачами | Повторяющиеся операции, сложная логика |
Для большинства задач хватит комбинации СЧЁТЕСЛИМН и Power Query. Если вы работаете с датами ежедневно, стоит освоить VBA — это сэкономит часы в перспективе.
FAQ: Ответы на частые вопросы
🔹 Почему СЧЁТЕСЛИ не считает мои даты?
Скорее всего, ваши даты хранятся как текст. Проверьте формат ячеек: выделите столбец → Формат ячеек → выберите Дата. Если это не помогло, используйте функцию ДАТАЗНАЧ, чтобы преобразовать текст в дату:
=ДАТАЗНАЧ(A2)
Или примените Текст по столбцам (Данные → Текст по столбцам), выбрав формат Дата: ДМГ.
🔹 Как посчитать только рабочие дни (исключая выходные)?
Используйте функцию ЧИСТРАБДНИ в комбинации с СУММПРОИЗВ:
=СУММПРОИЗВ(--(A2:A100>=D1); --(A2:A100<=E1); --(ДЕНЬНЕД(A2:A100;2)<6))
Где D1 и E1 — начальная и конечная даты диапазона, а ДЕНЬНЕД(...,2)<6 исключает субботу (6) и воскресенье (7).
🔹 Можно ли посчитать даты в сводной таблице?
Да! Создайте сводную таблицу (Вставка → Сводная таблица), перетащите столбец с датами в область Строки, а любое числовое поле — в Значения. Затем:
- Щёлкните правой кнопкой по дате в сводной таблице →
Группировка. - Выберите
Дни,МесяцыилиГодыдля группировки. - Excel автоматически посчитает количество записей для каждой группы.
🔹 Как посчитать уникальные даты в столбце?
Используйте формулу массива:
=СУММ(1/СЧЁТЕСЛИ(A2:A100; A2:A100))
В Excel 365 и 2019 можно упростить до:
=СЧЁТЕСЛИМН(A2:A100; A2:A100; "<>")
Или воспользуйтесь Power Query: загрузите данные → выделите столбец с датами → Главная → Группировка → Группировать по → Количество строк.
🔹 Почему после фильтрации количество строк не совпадает с подсчётом?
Вероятно, в вашей таблице есть скрытые строки или пустые ячейки. Проверьте:
- 🔍 Нажмите
Ctrl + A, чтобы выделить все данные, и убедитесь, что нет скрытых строк. - 📊 Используйте
СЧЁТЗвместоСЧЁТ, чтобы игнорировать пустые ячейки:
=СЧЁТЗ(диапазон)
Если проблема остаётся, проверьте фильтры: возможно, применено несколько условий одновременно.