-2

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

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 или что-то еще будет работать одинаково хорошо ..

3 ответа3

0

Я не вижу картины.

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.
0

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

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

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

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

0

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

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

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