Условное форматирование: правила, повторы, даты
Уроки курсаУсловное форматирование: правила, повторы, даты
СЕГОДНЯ() в формульном правиле: подсветка просроченных дат
Встроенные правила хорошо работают с числами, но для дат часто нужно условие «дата уже прошла», а это зависит от текущего дня. Здесь пригодится функция СЕГОДНЯ().
СЕГОДНЯ() не принимает никаких аргументов — скобки всегда пустые. Она возвращает сегодняшнюю дату как числовое значение Excel. Excel заново вычисляет СЕГОДНЯ() при открытии книги или пересчёте; результат изменится, когда изменится текущая системная дата.
Для сравнения: =A2<СЕГОДНЯ() вернёт ИСТИНА, если дата в A2 уже в прошлом. На этом и строится правило для просроченных дат.
Как создать формульное правило
Допустим, в столбце B (B2:B10) хранятся дедлайны задач, и вы хотите, чтобы просроченные строки подсвечивались красным.
Выделите диапазон всей таблицы A2:D10. Затем: Главная → Условное форматирование → Создать правило → Использовать формулу для определения форматируемых ячеек.
В поле формулы введите:
=$B2<СЕГОДНЯ()
Выберите формат (например, красная заливка) и нажмите OK.
Эта формула будет применяться ко всем ячейкам каждой строки диапазона, поэтому красным подсветится вся просроченная строка. Для строки 2 Excel проверит =$B2<СЕГОДНЯ(), для строки 3 — =$B3<СЕГОДНЯ() и так далее. Строка в ссылке относительная, поэтому и сдвигается вниз автоматически.
Почему знак $ перед буквой столбца
Знак $ перед B фиксирует столбец. Правило применяется к диапазону A2:D10 и всегда должно смотреть в столбец B, поэтому без $ перед буквой не обойтись: без него ссылка смещалась бы вместе с каждой форматируемой колонкой: для области A2:D10 формула =B2 проверяла бы B2, C2, D2 и E2 соответственно.
Строка в ссылке должна оставаться без знака $. Если написать =$B$2<СЕГОДНЯ(), Excel будет сравнивать каждую строку диапазона с одной и той же ячейкой B2 — это ошибка: правило перестанет реагировать на содержимое остальных строк.

