1

Я пытаюсь закрасить строки автоматически, где заданное условие истинно, используя условное форматирование. Например, раскрасьте строку, если в ее столбце D что-то есть: =INDIRECT("D"&ROW())<>"" Это отлично работает.

Однако, если я пытаюсь что-то более сложное, просто ничего не происходит, даже если я нажимаю Ctr+Alt+F9. В частности, это не работает:

=AND(INDIRECT("D"&ROW())<>"",INDIRECT("F"&ROW())="X")

Предполагается раскрасить строку, в которой столбец D не пустой, а столбец F содержит X. Если я положу его прямо в лист (в одну из его ячеек), он прекрасно работает. Оценивает true, когда предполагается, и false, когда предполагается, что false. Тем не менее, когда я пытаюсь использовать его для условного форматирования (хотя правило добавляется), это не имеет никакого эффекта; Он не окрашивает клетки, которые он должен.

В чем проблема? Как я мог решить это?

1 ответ1

0

Согласно комментариям, это НЕ способ использовать условное форматирование - используйте ссылки на ячейки, как говорит Блэквуд, например

=AND(D2<>"",F2="x")

.... но особая проблема здесь - функция ROW . Я не знаю, почему это нормально на рабочем листе, а не в CF, но функция ROW фактически возвращает "массив", а не число, даже если это одно число, поэтому в строке 2, например, ROW() возвращает массив {2 }. В некоторых случаях в Excel возникают проблемы с обработкой этого массива, поэтому решение заключается в том, чтобы обернуть в другую функцию, например, SUM или MAX , например:

=AND(INDIRECT("D"&SUM(ROW()))<>"",INDIRECT("F"&SUM(ROW()))="X")

хотя я отмечаю, что это также работает без SUM если вы умножаете условия вместо использования AND , т.е.

=(INDIRECT("D"&ROW())<>"")*(INDIRECT("F"&ROW())="X")

Примечание: функция COLUMN иногда показывает то же поведение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .