Работа с датами в Microsoft Excel — одна из самых востребованных задач среди аналитиков, бухгалтеров и менеджеров. Часто требуется быстро узнать, сколько записей содержит корректные даты: будь то сроки выполнения задач, даты продаж или логистические отметки. Но здесь пользователей поджидает ловушка: Excel воспринимает даты не как текст, а как числа в специальном формате, и это влияет на методы подсчёта.
Например, если вы примените стандартную функцию СЧЁТ к столбцу с датами, она посчитает все непустые ячейки, включая текстовые ошибки вроде "31.02.2023" или "Дата не указана". А функция СЧЁТЗ и вовсе проигнорирует пустые клетки, но не отличит настоящую дату от строки "15/05/2026г." с лишним символом. В этой статье разберём 5 надёжных способов, чтобы точно посчитать только валидные даты — от элементарных формул до продвинутых инструментов вроде Power Query.
Особое внимание уделим типичным ошибкам: почему Excel иногда "не видит" даты, как отличать их от текста, и что делать, если данные импортированы из внешних источников (например, 1С или Google Sheets) с искажённым форматом. Вы узнаете, какие функции работают быстрее на больших массивах, а какие подходят для динамических таблиц с автоматическим обновлением.
Для наглядности все примеры приведены с учётом русской и английской версий Excel (с указанием альтернативных названий функций), а также адаптированы под Excel 365, Excel 2019 и Excel Online. Если вы работаете с Google Таблицами, в конце статьи есть отдельный раздел с поправками для этой платформы.
1. Способ: Функция СЧЁТЕСЛИ для простого подсчёта дат
Самый очевидный инструмент — функция СЧЁТЕСЛИ (или COUNTIF в английской версии). Она подсчитывает ячейки, соответствующие заданному критерию. Для дат критерием может быть диапазон (например, все даты после 01.01.2026) или конкретное значение.
Синтаксис:
=СЧЁТЕСЛИ(диапазон; критерий)
Чтобы посчитать все ячейки с датами в столбце A2:A100, используйте критерий ">0". Почему? Потому что Excel хранит даты как числа (количество дней с 01.01.1900), и любая корректная дата всегда больше нуля. Текстовые значения или ошибки (например, "#ЗНАЧ!") будут проигнорированы.
Пример:
=СЧЁТЕСЛИ(A2:A100; ">0")
- ✅ Плюсы: Простота, работает во всех версиях Excel.
- ❌ Минусы: Не отличает даты от чисел (например, ячейка с числом
45000тоже будет посчитана).
⚠️ Внимание: Если в вашем диапазоне есть ячейки с формулами, возвращающими даты (например,=СЕГОДНЯ()), функцияСЧЁТЕСЛИих посчитает. Но если формула вернёт ошибку (например,#ДЕЛ/0!), такая ячейка будет проигнорирована.
2. Способ: Комбинация СЧЁТЕСЛИ + ЕТЕКСТ для точного подсчёта
Чтобы исключить из подсчёта числа, не являющиеся датами, используйте двойную проверку: сначала отсейте нечисловые значения функцией ЕТЕКСТ, затем проверьте, что оставшиеся значения больше нуля.
Формула:
=СЧЁТЕСЛИ(A2:A100; ">0") - СЧЁТЕСЛИ(A2:A100; "<>0") - СУММПРОИЗВ(--ЕТЕКСТ(A2:A100))
Разберём по частям:
СЧЁТЕСЛИ(A2:A100; ">0")— считает все числа и даты.СЧЁТЕСЛИ(A2:A100; "<>0")— считает все ненулевые числа (включая даты).СУММПРОИЗВ(--ЕТЕКСТ(A2:A100))— считает текстовые ячейки.
Эта формула вернёт количество ячеек, которые:
- ✅ Не являются текстом (
ЕТЕКСТ = ЛОЖЬ). - ✅ Имеют значение > 0 (т.е. даты или положительные числа).
- ❌ Но исключает числа, не являющиеся датами (например,
123).
⚠️ Внимание: Формула массива! В старых версиях Excel (до 2019) её нужно вводить с нажатием Ctrl+Shift+Enter. В Excel 365 этого не требуется.
3. Способ: Функция СЧЁТЕСЛИМН для дат в диапазоне
Если вам нужно посчитать даты, попадающие в определённый интервал (например, только за 2026 год), используйте функцию СЧЁТЕСЛИМН (или COUNTIFS). Она позволяет задавать несколько критериев одновременно.
Пример: Подсчёт дат с 01.01.2026 по 31.12.2026 в столбце B2:B500:
=СЧЁТЕСЛИМН(B2:B500; ">="&ДАТА(2026;1;1); B2:B500; "<="&ДАТА(2026;12;31))
Ключевые моменты:
- 📅 Функция
ДАТАсоздаёт корректную дату из года, месяца и дня, избегая ошибок при ручном вводе (например, "31.02.2026" не пройдёт валидацию). - 🔗 Оператор
&соединяет критерий с функциейДАТА. - 📊 Можно добавлять дополнительные условия, например, для подсчёта дат по конкретному дню недели.
| Критерий | Формула | Описание |
|---|---|---|
| Дата равна 15.05.2026 | =СЧЁТЕСЛИ(B2:B500; ДАТА(2026;5;15)) |
Точное совпадение |
| Дата позже сегодняшней | =СЧЁТЕСЛИ(B2:B500; ">="&СЕГОДНЯ()) |
Динамический критерий |
| Дата в текущем месяце | =СЧЁТЕСЛИМН(B2:B500; ">="&ДАТА(ГОД(СЕГОДНЯ()); МЕСЯЦ(СЕГОДНЯ()); 1); B2:B500; "<="&КОНМЕСЯЦА(СЕГОДНЯ(); 0)) |
Использует функции ГОД, МЕСЯЦ и КОНМЕСЯЦА |
4. Способ: Функция СУММПРОИЗВ для сложных условий
Если вам нужно посчитать даты с учётом дополнительных критериев (например, только по определённому поставщику или статусу), функция СУММПРОИЗВ (или SUMPRODUCT) станет универсальным решением. Она обрабатывает массивы и позволяет задавать логические условия.
Пример: Подсчёт дат в столбце B2:B100, где в столбце A2:A100 указан статус "Выполнено":
=СУММПРОИЗВ(--(A2:A100="Выполнено"); --(B2:B100>0); --(ЕОШИБКА(ДАТАЗНАЧ(B2:B100))=ЛОЖЬ))
Разбор формулы:
--(A2:A100="Выполнено")— проверяет статус.--(B2:B100>0)— отсеивает пустые ячейки и отрицательные числа.--(ЕОШИБКА(ДАТАЗНАЧ(B2:B100))=ЛОЖЬ)— гарантирует, что значение можно преобразовать в дату.
Когда использовать СУММПРОИЗВ:
- 🔄 Нужно комбинировать данные из нескольких столбцов.
- 📈 Работаете с большими массивами (быстрее, чем
СЧЁТЕСЛИМНв некоторых случаях). - 🛠 Требуется гибкость в условиях (например, подсчёт по недели или кварталы).
⚠️ Внимание: В Excel 365 для аналогичных задач можно использоватьФИЛЬТР+СТРОКА, ноСУММПРОИЗВостаётся более универсальной для старых версий.
5. Способ: Фильтр и специальная вставка (без формул)
Если формулы кажутся сложными, можно обойтись встроенными инструментами Excel:
- Выделите диапазон с датами.
- Перейдите на вкладку
Главная → Сортировка и фильтр → Фильтр. - В выпадающем списке фильтра выберите
Фильтры по датеи укажите нужный критерий (например, "Все даты" или "Пользовательский фильтр"). - Скопируйте отфильтрованные ячейки и вставьте их как
Значенияв новый столбец. - Используйте
СЧЁТЗдля подсчёта непустых ячеек в новом диапазоне.
Преимущества метода:
- 🎯 Визуальный контроль: вы видите, какие именно даты попали в выборку.
- 📋 Подходит для одноразовых задач, где не нужно сохранять формулу.
- 🔄 Можно быстро изменить критерии фильтрации.
Недостатки:
- ⏳ Требует ручных действий (не автоматизируется).
- 📊 Не подходит для динамических отчётов, где данные обновляются.
Убедитесь, что столбец с датами имеет формат "Дата" (выделите → Ctrl+1 → категория "Дата")|Проверьте отсутствие текстовых ошибок (например, "31.02.2023")|Если даты импортированы из CSV, используйте Текст по столбцам для корректного разбора|Сохраните резервную копию файла перед массовыми изменениями-->
6. Способ: Power Query для обработки больших данных
Если вы работаете с тысячами строк или импортируете данные из внешних источников (например, SQL, JSON), Power Query (или Get & Transform в Excel) станет вашим спасением. Этот инструмент позволяет очищать, трансформировать и анализировать данные без формул.
Пошаговая инструкция:
выделите столбец с датами.
Данные → Получить данные → Из таблицы/диапазона.
Преобразовать и выберите Обнаружить тип данных (или вручную задайте тип Дата).= if [ВашСтолбец] is null then 0 else 1.Сумма — результат покажет количество дат.Закрыть и загрузить, чтобы вернуть данные в Excel.Преимущества Power Query:
Power Query — единственный инструмент в Excel, который гарантированно распознает даты в нестандартных форматах (например, "May 15, 2026" или "2026/05/15") благодаря встроенному механизму парсинга.
Если Power Query не распознаёт дату, попробуйте: 1. Замените разделители (точки на тире или слэши) через 2. Используйте функцию 3. Проверьте локаль в настройках Power Query (должна совпадать с форматом даты). В Google Sheets принципы подсчёта дат аналогичны, но есть нюансы:
Типичные ошибки в Google Sheets:
Даже опытные пользователи сталкиваются с проблемами при подсчёте дат. Вот TOP-5 ошибок и их решения:
Дополнительные советы:
Используйте комбинацию В старых версиях Excel примените При копировании даты могут преобразовываться в текст. Проверьте формат ячеек и примените Если появляется ошибка, используйте Да! Используйте Где Используйте Это вернёт количество пустых ячеек + текстовые значения. Excel автоматически преобразует данные при импорте, но если разделители даты нестандартные (например, точка вместо слэша), он воспринимает их как текст. Решение:
Как исправить ошибку "Не удалось преобразовать значение в тип Дата"
Заменить значения.Date.FromText в пользовательском столбце: = try Date.FromText([ВашСтолбец]) otherwise null.7. Особенности работы с датами в Google Таблицах
СЧЁТЕСЛИ работает так же, но для точного подсчёта дат используйте =ARRAYFORMULA(COUNTIF(A2:A100; ">="&DATE(2026;1;1))).=ISDATE(A2) (аналог ЕОШИБКА(ДАТАЗНАЧ(A2))=ЛОЖЬ в Excel).QUERY — мощный инструмент для сложных фильтров, например:
=QUERY(A2:B100; "SELECT COUNT(B) WHERE B IS NOT NULL AND ISDATE(B)"; 1)
=TO_DATE(A2) для принудительного преобразования.ARRAYFORMULA) могут тормозить на больших диапазонах.8. Частые ошибки и как их избежать
Ошибка
Причина
Решение
Функция считает числа как даты
Excel хранит даты как числа, поэтому
45000 и 15.05.2026 для него — одно и то же.Используйте
ЕТЕКСТ + ДАТАЗНАЧ для проверки.
Дата отображается как число (например, 44927)
Некорректный формат ячейки.
Выделите ячейки →
Ctrl+1 → выберите формат "Дата".
СЧЁТЕСЛИ возвращает 0 для корректных датДата хранится как текст (например, после импорта из CSV).
Примените
ДАТАЗНАЧ или Текст по столбцам.
Ошибка
#ЗНАЧ! в формулахНесовпадение диапазонов или типов данных.
Проверьте, что все диапазоны одинакового размера.
Фильтр не находит даты
Дата записана как текст с лишними символами (например, "15/05/2026г.").
Очистите данные с помощью
ПОИСК/ЗАМЕНИТЬ.
=ЕОШИБКА(ДАТАЗНАЧ(A2)).=ДАТА(1970;1;1)+A2/86400.FAQ: Ответы на частые вопросы
❓ Как посчитать только уникальные даты в столбце?
УНИК (в Excel 365) и СЧЁТ:=СЧЁТ(УНИК(ФИЛЬТР(A2:A100; A2:A100>0)))Разведка данных → Удалить дубликаты перед подсчётом.❓ Почему
СЧЁТЕСЛИ не считает даты после копирования из другой книги?ДАТАЗНАЧ:=СЧЁТЕСЛИ(ДАТАЗНАЧ(A2:A100); ">0")ЕОШИБКА для фильтрации.❓ Можно ли посчитать даты по дням недели?
ДЕНЬНЕД в сочетании с СЧЁТЕСЛИ:=СЧЁТЕСЛИ(ДЕНЬНЕД(A2:A100); 2)2 — понедельник (номера дней недели: 1=воскресенье, 2=понедельник и т.д.).❓ Как посчитать количество пустых ячеек среди дат?
СЧИТАТЬПУСТОТЫ или комбинацию:=СЧЁТЗ(A2:A100) - СЧЁТЕСЛИ(A2:A100; ">0")❓ Почему после импорта из CSV даты становятся текстом?
Данные → Текст по столбцам с ручным указанием формата.ДАТАЗНАЧ с заменой разделителей: =ДАТАЗНАЧ(ЗАМЕНИТЬ(A2; "."; "/")).