Como aplico a formatação condicional específica para cada linha?

Como aplico a formatação condicional específica para cada linha?

Na minha planilha, gostaria de aplicar alguma formatação condicional que me alerte se o seguinte for verdade:

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.

...e assim por diante até o infinito.

Estou fazendo uma string com três componentes, o primeiro componente é sempre encontrado no J7, então é uma combinação das células 'h' e 'i' de cada linha, começando na linha 14 e indo descendo. Se a string nessa linha específica tiver mais de 256 caracteres, gostaria de receber algum tipo de notificação para essa linha.

Não consigo fazer funcionar usando a ferramenta de formatação condicional. Eu seleciono as colunas nas quais gostaria de formatar, depois escrevo a fórmula na caixa de ferramentas de Formatação Condicional e faço com que funcione na linha 14 como gostaria na linha 14. Mas quando inspeciono as células na linha 15, é o mesmas regras avaliando as células na linha 14. Basicamente, o que consegui foi aplicar a formatação condicional em TODAS as linhas que selecionei se a primeira linha atender às condições.

Alguma ideia?

Não precisa ser resolvido por formatação condicional. VBA ou qualquer outra coisa funcionaria igualmente bem.

Responder1

Não estou vendo o padrão.

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.

Este é o seu padrão real?

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.

Responder2

A regra é que você precisa aplicar a fórmula que se aplica aocélula superior esquerdado intervalo - o Excel ajustará automaticamente a fórmula para o resultado do intervalo, como se a fórmula estivesse sendo copiada na planilha, portanto, se você selecionar um intervalo como I14:I1000você, poderá aplicar a fórmula que seria correta para I14, ou seja

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

Porque usei um $ no valor J7 que irá "consertar" a linha em 7 enquanto as outras linhas serão incrementadas. Você não vê isso explicitamente, mas é assim que funciona internamente.

Nota: você não precisa de uma instrução IF, apenas de um "teste" que resulte em TRUEouFALSE

Responder3

Selecione as colunas que deseja afetar e use esta fórmula.

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

informação relacionada