¿Cómo aplico un formato condicional específico para cada fila?

¿Cómo aplico un formato condicional específico para cada fila?

En mi hoja de trabajo me gustaría aplicar algún formato condicional que me avise si lo siguiente es cierto:

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.

...y así sucesivamente hasta el infinito.

Estoy haciendo una cadena con tres componentes, el primer componente siempre se encuentra en J7, luego es una combinación de las celdas 'h' e 'i' de cada fila, comenzando desde la fila 14 y avanzando hacia abajo. Si la cadena en esa fila en particular tiene más de 256 caracteres, me gustaría recibir algún tipo de notificación para esa fila.

No puedo hacer que funcione usando la herramienta de formato condicional. Selecciono las columnas en las que me gustaría formatear, luego escribo la fórmula en la caja de herramientas Formato condicional y hago que funcione en la fila 14 como me gustaría en la fila 14. Pero cuando inspecciono las celdas en la fila 15, es el Las mismas reglas que evalúan las celdas en la fila 14. Básicamente, lo que he logrado es aplicar formato condicional en TODAS las filas que seleccioné si la primera fila cumple con las condiciones.

¿Algunas ideas?

No es necesario resolverlo mediante formato condicional. Vba o cualquier otra cosa funcionaría igual de bien.

Respuesta1

No veo el patrón.

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.

¿Es este tu patrón 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.

Respuesta2

La regla es que debes aplicar la fórmula que se aplica a lacelda superior izquierdadel rango: Excel ajustará automáticamente la fórmula para el resultado del rango, como si la fórmula se estuviera copiando en la hoja de trabajo, por lo que si selecciona un rango como este, I14:I1000puede aplicar la fórmula que sería correcta para I14, es decir

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

Porque utilicé $ en el valor J7 que "arreglará" la fila en 7 mientras que las otras filas se incrementarán. No lo ves explícitamente, pero así es como funciona internamente.

Nota: no necesita una declaración IF, sólo una "prueba" que dé como resultado TRUEoFALSE

Respuesta3

Seleccione las columnas que desea afectar y utilice esta fórmula.

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

información relacionada