Мастерство сравнения: даты и отрицательные значения в Excel

Иван Корнев·13.04.2026·4 мин

Чтобы проверить, меньше ли дата определенной величины или число меньше нуля, в Excel используются стандартные логические операторы < (меньше) и <= (меньше или равно). Ключевой момент: даты в Excel хранятся как порядковые номера, поэтому сравнение A2 < СЕГОДНЯ() технически является сравнением двух чисел. Для чисел условие B2 < 0 мгновенно выявляет отрицательные значения (убытки, долги, перерасход).

Почему это работает: природа данных в Excel

Понимание внутреннего формата данных спасает от 90% ошибок при фильтрации.

  • Даты — это числа. 1 января 1900 года имеет номер 1, а сегодня (13 апреля 2026 года) — примерно 45760. Чем раньше дата, тем меньше её числовое значение. Поэтому формула Дата_прошлая < Дата_будущая всегда вернет ИСТИНА.
  • Отрицательные числа. Любое значение со знаком минус автоматически меньше нуля. Проблемы возникают только если число сохранено как текст (например, " -500 " с пробелом).

Лайфхак: Если формула сравнения дат возвращает ошибку или неверный результат, измените формат ячейки на «Общий». Если вы увидите число (например, 45300), значит, дата корректна. Если остался текст — преобразуйте его функцией ДАТАЗНАЧ.

Работа с условиями «меньше даты»

Этот тип условий критичен для отслеживания сроков: просроченные счета, истекшие подписки, дни рождения сотрудников.

Базовый синтаксис

Для сравнения даты в ячейке A2 с текущим днем используйте функцию СЕГОДНЯ():

=A2 < СЕГОДНЯ()

Эта формула вернет ИСТИНА, если дата в A2 наступила раньше сегодняшнего дня.

Сравнение с конкретной датой

Если нужно найти записи старше фиксированной даты (например, отчеты до конца 2025 года):

=A2 < ДАТА(2025; 12; 31)

Или через текстовое представление (менее надежно, но работает):

=A2 < "31.12.2025"

Динамические диапазоны

Часто требуется найти даты в промежутке. Например, задачи, срок которых уже наступил, но еще не прошел месяц:

=И(A2 >= СЕГОДНЯ(); A2 < СЕГОДНЯ()+30)

Работа с условиями «меньше нуля»

Условие < 0 — основной инструмент финансового анализа для выявления убытков, переплат или ошибок ввода.

Простая проверка

=B2 < 0

Возвращает ИСТИНА, если в ячейке отрицательное число.

Обработка пустых ячеек

Частая ошибка: пустая ячейка иногда интерпретируется как 0. Чтобы избежать ложных срабатываний на пустых строках:

=И(НЕПУСТО(B2); B2 < 0)

Осторожно с текстом! Если в ячейке написано "-100 руб.", Excel воспринимает это как текст. Условие < 0 вернет ЛОЖЬ. Используйте очистку данных или формулу =ЗНАЧЕН(ПОДСТАВИТЬ(B2;" руб.";"")) < 0.

Продвинутые техники: агрегация и фильтрация

Ручная проверка каждой строки неэффективна. Используйте функции для работы с массивами данных.

Подсчет по условиям (СЧЁТЕСЛИМН)

Сколько задач просрочено и имеют отрицательный бюджет?

=СЧЁТЕСЛИМН(A2:A100; "<"&СЕГОДНЯ(); B2:B100; "<0")

Обратите внимание: при использовании функций в критериях даты их нужно соединять с оператором через амперсанд &.

Выгрузка списка (ФИЛЬТР)

Функция ФИЛЬТР (доступна в новых версиях Excel) создаст динамический список проблемных записей:

=ФИЛЬТР(A2:C100; (A2:A100 < СЕГОДНЯ()) * (B2:B100 < 0); "Нет совпадений")

Здесь знак умножения * работает как логическое «И».

Визуализация (Условное форматирование)

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

  1. Выделите диапазон с датами.
  2. Главная → Условное форматирование → Правила выделения ячеек → Меньше...
  3. Введите =СЕГОДНЯ() и выберите красный цвет.
  4. Повторите для чисел с условием < 0.

Частые ошибки и их решение

ОшибкаПричинаРешение
Формула не работает, хотя дата явно раньшеЯчейка с датой имеет текстовый форматИспользуйте Данные → Текст по столбцам или функцию ДАТАЗНАЧ
Считаются пустые ячейки как «меньше 0»Пустота приравнивается к нулю в некоторых контекстахДобавьте проверку НЕПУСТО()
Ошибка в СЧЁТЕСЛИМН с датамиНеправильное соединение оператора и функцииПишите строго: "<"&СЕГОДНЯ()
Сравнение не учитывает времяДата 13.04.2026 10:00 больше, чем 13.04.2026 (без времени)Используйте функцию ЦЕЛОЕ() для отсечения времени: ЦЕЛОЕ(A2) < СЕГОДНЯ()

FAQ

Как проверить, что дата меньше другой даты из соседней ячейки? Просто используйте ссылку: =A2 < B2. Убедитесь, что в обеих ячейках установлен формат «Дата».

Можно ли использовать условие «меньше нуля» для текста? Нет. Логические операторы работают только с числами и датами. Для текста используйте поиск подстроки или функцию ЕТЕКСТ.

Почему СЧЁТЕСЛИ не видит даты, которые меньше указанной? Скорее всего, даты импортированы как текст. Проверьте выравнивание: текст обычно выровнен по левому краю, числа (даты) — по правому. Преобразуйте их в настоящий формат даты.

Как игнорировать время при сравнении дат? Функция СЕГОДНЯ() возвращает дату без времени (00:00). Если в ваших ячейках есть время (например, 13.04.2026 15:30), то A2 < СЕГОДНЯ() может вернуть ложь для сегодняшних записей. Используйте ЦЕЛОЕ(A2) < СЕГОДНЯ(), чтобы сравнивать только даты.