С помощью Условного Форматирования (УФ) выделим заливкой ячейки содержащие дату, относящуюся к прошлой, позапрошлой и будущей неделе.
Условное форматирование позволяет выделить ячейки, которые содержат значения в заданном диапазоне.
Пусть в столбце А содержатся даты. Выделим заливкой те, которые относятся к будущей неделе, а также к прошлой и позапрошлой неделе. Сегодняшнюю дату отобразим с помощью функции СЕГОДНЯ()
Каждая неделя имеет свой номер. Номер можно определить с помощью функции =НОМНЕДЕЛИ(B31;2) со вторым аргументом равным 2 (этот аргумент указывает функции, что неделя начинается с понедельника). Подробнее про номера недель можно почитать в этой статье.
Решение задачи сводится к сравнению номера недели у сегодняшней даты и у всех дат в столбце А. Если разница равна 1, то это прошлая неделя, если 2, то позапрошлая. Если, наоборот, вычитать номер недели сегодняшней даты, то разница равна -1 и -2 соответственно. Подробности в файле примера.
Правило (формулу) для Условного форматирования можно ввести как непосредственно в диалоговом окне УФ, так и в ячейках листа. В последнем случае формула для УФ - это просто ссылка на ячейку в формате смешанной ссылки =$J11. Такой подход более наглядный, т.к. позволяет быстрее определить неработающее правило. В файле примера реализовано оба подхода.
Не смотря на то, что с помощью номера недели задача решается элементарно, есть один подводный камень - начало года. Например, номер недели для даты 1/1/2021 равен 1, а для предыдущей даты 31/12/2020 - 53, хотя обе даты относятся к одной неделе. Если начало года важно, то нужно использовать другой подход.
Альтернативным подходом для определения будущей/прошлой недели может служить следующий алгоритм:
Итоговая формула несколько громоздкая, но вполне понятная:
=И(
$A11-(СЕГОДНЯ()-ДЕНЬНЕД(СЕГОДНЯ();2)+1)>=$B$26;
$A11-(СЕГОДНЯ()-ДЕНЬНЕД(СЕГОДНЯ();2)+1)<=$C$26)
Настройка правил УФ аналогична предыдущему случаю.
© Copyright 2013 - 2024 Excel2.ru. All Rights Reserved
Комментарии