Страницы: 1
RSS
Заливка ячеек цветом по условию, Не работает заливка ячеек цветом по условию сравнения дат.
 
Всем привет. Мне необходимо ячейки с датами сравнивать с текущей датой и если дата в ячейке меньше текущей, то окрашивать эту ячейку в красный цвет. Казалось бы - все элементарно. В условном форматировании создаю правило =диапазон ячеек<сегодня(), заливать красным цветом. Но это не работает. Пробую это условие в обычных ячейках - все четко. В результате сравнения дат с текущей датой ячейки заполняются ИСТИНА или ЛОЖЬ. Но почему это сравнение не работает в условном форматировании?
 
Файл проблемный приложите. Может там еще куча УФ, которые друг друга компенсируют. Или макрос какой.
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Mozgolm написал:
=диапазон ячеек<сегодня(),
скорее =ячейка<сегодня(),
а диапазон ячеек указывается в другом месте.
Изменено: V - 06.02.2025 08:27:17
 
Вкладка 4В-Г. Я экспериментирую пока только с ней. Мне необходимо ячейки в столбце "дата окончания эксплуатации" закрашивать красным, если дата меньше текущей, то есть срок эксплуатации вышел. А ячейки, в которых дата больше текущей на один год (то есть остался 1 год до окончания эксплуатации) окрашивать, например, в желтый цвет. Ячейки, в которых дата больше текущей больше, чем на 1 год, окрашивать зеленым.
Я споткнулся на первом же шаге - окрашивать в красный.
 
Цитата
написал:
ИН
Цитата
написал:
скорее =ячейка<сегодня(),а диапазон ячеек указывается в другом месте.
Н
Совершенно верно. Но это не работает почему-то.
 
поправил. станьте в ячейку Q7 и посмотрите как должно быть. В U7 формула для Q7, как по мне проще вашей.
 
Цитата
написал:
поправил. станьте в ячейку Q7 и посмотрите как должно быть. В U7 формула для Q7, как по мне проще вашей.
То есть вся проблема вот в этой формуле?

=ДАТА(ГОД(O7)+10;МЕСЯЦ(O7);ДЕНЬ(O7))

Эта формула работает в ячейках, но не работает при условном форматировании. Я правильно понял?
 
Цитата
Mozgolm написал:
То есть вся проблема вот в этой формуле?
Вообще не связано. Тем более, что в УФ ее и нет.
Чтобы не красило пустые, думаю, лучше написать УФ так
Код
=($Q7<СЕГОДНЯ())*$Q7

И вопрос - зачем Вам нужно некоторые столбцы таблицы делать из двух-трех столбцов Еxcel? Это же неудобно, да и не по-феншую совсем ни разу
Скажи мне, кудесник, любимец ба’гов...
 
нет, эта формула не причем. У вас не правильная формула была и отношение диапазона к первой ячейке с формулой в УФ.
Изменено: V - 06.02.2025 09:52:30 (добавил картинку)
 
Цитата
написал:
нет, эта формула не причем. У вас не правильная формула была и отношение диапазона к первой ячейке с формулой в УФ.
Правильно ли я понял, что само условие обязательно должно быть только в одной ячейке, а потом уже выбираем диапазон, к которому применяется это условие? Но зачем тогда exel позволяет вставлять диапазон ячеек в условие?
 
Цитата
написал:
Чтобы не красило пустые, думаю, лучше написать УФ так
Да, действительно, так лучше. Спасибо огромное.  
Изменено: Mozgolm - 06.02.2025 10:01:13
 
Цитата
Mozgolm написал:
Но зачем тогда exel позволяет вставлять диапазон ячеек в условие?
Это для других задач, для вашей нужна одна.
например подкрасить сумма в строек больше 10, здесь уже будет формула с диапазоном.
Изменено: V - 06.02.2025 10:08:18
 
Цитата
написал:
=($Q7<СЕГОДНЯ())*$Q7
А что означает эта конструкция?
Код
$Q7<СЕГОДНЯ()

Результатом выполнения этой функции будет ИСТИНА или ЛОЖЬ. А чего бы добиваемся умножая логическую переменную ИСТИНА или ЛОЖЬ на значение ячейки с датой?

Код
=($Q7<СЕГОДНЯ())*$Q7
Изменено: Mozgolm - 06.02.2025 10:09:32
 
вставьте в соседний столбец да растяните вниз, формат ячейки общий поставьте и увидете.
в эксель 0 это ЛОЖЬ,
 
Цитата
Mozgolm написал:
А чего бы добиваемся умножая логическую переменную ИСТИНА или ЛОЖЬ на значение ячейки с датой?
Получаем или 0, или дату. Дата - это число (дней с 0 января 1900года). Получается, на 0 - не красим (это ячейки, где или дата >=сегодня, или где даты вообще нет), дата (число, отличное от нуля) - красим
Скажи мне, кудесник, любимец ба’гов...
 
Я заменил код во всех ячейках столбца "окончание срока эксплуатации" на   =ДАТАМЕС(O7;12*10), как советовали выше. Эта конструкция корректно работает. Все ок.
А вот теперь я пишу условие в условном форматировании:
Код
=$Q$7<СЕГОДНЯ()

Выбираю диапазон ячеек
Код
=$Q$7:$R$118

И снова ничего не работает. Никакие ячейки не окрашиваются. В чем ошибка?

 
А Вы при этом в какой ячейке находитесь? Нужно в Q7. И внимательно смотрите - у нас написано $Q7, а у Вас?
Скажи мне, кудесник, любимец ба’гов...
 
Цитата
написал:
А Вы при этом в какой ячейке находитесь? Нужно в Q7. И внимательно смотрите - у нас написано $Q7, а у Вас?
Когда я пишу условие и выбираю ячейку, EXEL сам прописывает ее адрес в формуле вот так
Код
=$Q$7

Я не знаю почему

 
Цитата
Mozgolm написал:
EXEL сам прописывает ее адрес в формуле вот так
Потому, что так прописывает. А Вам нужно не так. Значит, что нужно сделать?
Скажи мне, кудесник, любимец ба’гов...
 
Цитата
написал:
Потому, что так прописывает. А Вам нужно не так. Значит, что нужно сделать?
Я понял. Поправил вручную - все заработало. Видимо, это очередной EXEL-евский прикол, который нужно держать в уме. Спасибо большое всем за помощь.  
Страницы: 1
Наверх