4

Я хотел бы использовать условное форматирование Excel определенного столбца на основе значений в двух других столбцах.

  • У меня есть значения в столбцах A, B, C и D.
  • столбец A имеет текстовые значения (любое значение, введенное пользователем)
  • столбец B имеет числовое значение (любое значение, введенное пользователем)
  • столбец C имеет текстовое значение, выбранное из набора значений (проверка данных с использованием раскрывающегося списка):
    • Start
    • Intermediate
    • End
  • столбец D определяется как (x обозначает любой номер строки)

    =IF(Cx="End";"";Bx)
    
  • пользователь также может удалить формулу в столбце D, сделав ее пустой

Я хочу, чтобы значения в столбце A отображались красным цветом, когда D пусто и пользователь не выбрал End в столбце C. Так что это происходит только тогда, когда пользователь удаляет формулу из D.

Поэтому я подумал о создании правила условного форматирования, которое бы помогло мне. Но когда я пытаюсь написать формулу условия, это не работает.

Я попытался указать эту формулу для правила условного форматирования:

=NOT(OR(ISNUMBER(INDIRECT("D"&ROW()));INDIRECT("C"&ROW())="End"))

но это не сработало.

Существуют ли какие-либо ограничения, которые функции могут использовать в этой формуле, потому что, когда я использую что-то вроде OR() или AND() кажется, что он просто перестает работать, даже если это простые логические функции, которые возвращают TRUE/FALSE ...

2 ответа2

2

Основываясь на этом вопросе суперпользователя, я смог решить свою проблему.

Вот решение, которое действительно работает. Замените формулу этой:

=NOT(OR(ISNUMBER($D1);$C1="End"))

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

Еще проще

Но если учесть, что ISBLANK() возвращает FALSE где также есть формула в ячейке, мы можем упростить это еще больше, используя только эту формулу:

=ISBLANK($D1)
1

Вот более простая формула, которая делает то, что вы просили:

= ИЛИ ($ С1 = "End", $ D1 = "")

Чтобы ответить на ваш вопрос об ограничениях: в формуле, которую вы разместили, похоже, что-то не так

  • Точка с запятой должна быть запятой
  • INDIRECT() - проблема в условных формулах, и вам все равно не нужно ее использовать.
  • Похоже, он на самом деле не делает именно то, что вы указали, что должен делать ?!

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