Как применить условное форматирование, специфичное для каждой строки?

Как применить условное форматирование, специфичное для каждой строки?

На своем рабочем листе я хотел бы применить условное форматирование, которое оповещает меня, если выполняется следующее:

IF (len(J7) + len(h14) + len(i14) > 256) = TRUE: apply some formatting on I14.
IF (len(J7) + len(h15) + len(i15) > 256) = TRUE: apply some formatting on I15.
IF (len(J7) + len(h16) + len(i16) > 256) = TRUE: apply some formatting on I16.
IF (len(J7) + len(h18) + len(i18) > 256) = TRUE: apply some formatting on I18.
IF (len(J7) + len(h19) + len(i19) > 256) = TRUE: apply some formatting on I19.
IF (len(J7) + len(h20) + len(i20) > 256) = TRUE: apply some formatting on I20.

...и так далее, и так далее, до бесконечности.

Я создаю строку из трех компонентов, первый компонент всегда находится в J7, затем это комбинация ячеек 'h' и 'i' каждой строки, начиная со строки 14 и продвигаясь вниз. Если строка в этой конкретной строке больше 256 символов, я хотел бы получить уведомление какого-либо рода для этой строки.

Я не могу заставить его работать с помощью инструмента условного форматирования. Я выбираю столбцы, которые хочу отформатировать, затем пишу формулу в панели инструментов условного форматирования и заставляю ее работать в строке 14 так, как мне бы хотелось в строке 14. Но когда я проверяю ячейки в строке 15, те же правила оценивают ячейки в строке 14. По сути, то, чего я добился, — это применил условное форматирование ко ВСЕМ выбранным мной строкам, если первая строка удовлетворяет условиям.

Есть идеи?

Эту проблему не обязательно решать с помощью условного форматирования. VBA или что-то еще подойдет так же хорошо.

решение1

Я не вижу закономерности.

IF (len(J7) + len(h14) + len(i14) > 256) = TRUE: apply some formatting on I14.
IF (len(J7) + len(h15) + len(i15) > 256) = TRUE: apply some formatting on I15.
IF (len(J7) + len(h16) + len(i16) > 256) = TRUE: apply some formatting on I16.
IF (len(J8) + len(h18) + len(i18) > 256) = TRUE: apply some formatting on I18.
IF (len(J9) + len(h19) + len(i19) > 256) = TRUE: apply some formatting on I19.
IF (len(J20) + len(h20) + len(i20) > 256) = TRUE: apply some formatting on I20.

Это ваш реальный шаблон?

IF (len(J14) + len(h14) + len(i14) > 256) = TRUE: apply some formatting on I14.
IF (len(J15) + len(h15) + len(i15) > 256) = TRUE: apply some formatting on I15.
IF (len(J16) + len(h16) + len(i16) > 256) = TRUE: apply some formatting on I16.
IF (len(J18) + len(h18) + len(i18) > 256) = TRUE: apply some formatting on I18.
IF (len(J19) + len(h19) + len(i19) > 256) = TRUE: apply some formatting on I19.
IF (len(J20) + len(h20) + len(i20) > 256) = TRUE: apply some formatting on I20.

решение2

Правило заключается в том, что вам нужно применить формулу, которая применима кверхняя левая ячейкадиапазона - Excel автоматически скорректирует формулу для результата диапазона, как если бы формула копировалась на рабочий лист, поэтому, если вы выберете диапазон, например, I14:I1000вы можете затем применить формулу, которая будет корректна для I14, т.е.

=LEN(J$7&H14&I14)>256

Потому что я использовал $ в значении J7, которое "зафиксирует" строку на 7, в то время как другие строки будут увеличиваться. Вы не видите этого явно, но так это работает внутри.

Примечание: вам не нужен оператор IF, просто «тест», который приводит к результату TRUEилиFALSE

решение3

Выберите столбец(ы), на которые вы хотите повлиять, и используйте эту формулу.

=(LEN($J$7)+LEN($H1)+LEN($I1))>256

Связанный контент