
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:I1000
você, 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 TRUE
ouFALSE
Responder3
Selecione as colunas que deseja afetar e use esta fórmula.
=(LEN($J$7)+LEN($H1)+LEN($I1))>256