es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El tipo de regla de formato condicional ‘Usar una fórmula para determinar qué celdas deben tener formato’ en una tabla analiza el valor en la fila donde se determinó la regla.

He creado una tabla (un objeto de lista en términos de VBA) con una fila de datos en Excel. Antes de agregar filas a la tabla, añado formato condicional a la primera fila, con la esperanza de que las nuevas filas hereden el formato condicional. Veo que, dependiendo del tipo de regla de formato condicional que utilice, el formato se comporta de manera diferente para las nuevas filas. Permítanme ilustrar con un ejemplo a qué me refiero.

En el ejemplo a continuación, he añadido formato condicional para B2: cuando la celda está vacía, utilizar un relleno de color naranja. Después, al agregar filas a la tabla (ver fila 3 y 4), el formato condicional se mantiene y, por fila, solo importa lo que se encuentra en la columna B de esa fila.

Sin embargo, cuando uso el tipo de regla ‘Utilizar una fórmula para determinar qué celdas dar formato’, siempre es el valor de la primera fila de datos (es decir, fila 2) el que parece importar. Tomemos como ejemplo la regla a continuación, donde el formato de Col1 cambia el texto a negrita y rojo cuando Col2 está vacía. Esto se debe, por supuesto, a que se utiliza $B$2 en la fórmula. ¿Cómo puedo asegurarme de que, cuando estamos en la fila 3, la regla tome en cuenta el valor de B3 y no B2? Busqué en StackOverflow y encontré la interesante publicación https://stackoverflow.com/questions/45423897/use-a-formula-based-on-a-table-to-determine-which-cells-to-format. Sin embargo, aunque parece funcionar para reglas como =INDIRECT("Table1[@Col2]")="a", no funciona cuando intento cosas como =ESBLANCO(INDIRECT("Table1[@Col2]")) – no hace ningún formato. ¿Se puede hacer que funcione para este último caso?

Imagen

Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema al aplicar formato condicional a una tabla y utilizar una fórmula para determinar el formato es que la fórmula siempre hace referencia a la primera fila de la tabla, incluso si se agregan nuevas filas. Esto significa que si utilizas una fórmula como =ESBLANCO(INDIRECTO("Tabla1[@Col2]")) para determinar el formato basado en el valor de la fila actual, solo se evaluará el valor de la primera fila.

    Una solución alternativa para esto es utilizar la función ÍNDICE en lugar de INDIRECTO. Puedes modificar la fórmula para que luzca así: =ESBLANCO(ÍNDICE(Tabla1[Col2],FILA())). Esta fórmula se evaluará en la misma fila que la celda que se está formateando, sin importar cuántas filas haya en la tabla.

    Utilizando este enfoque, puedes aplicar formato condicional a la primera fila de una tabla y que se herede en nuevas filas, al mismo tiempo que puedes utilizar fórmulas para determinar el formato basado en los valores de la fila actual.

Comments are closed.