Como la mayoría sabréis, el formato condicional de las hojas de cálculo, como el nombre indica, permite que el formato de una celda cambie si se producen determinadas condiciones. Por ejemplo, podemos hacer que una celda con un número aparezca de color rojo si es negativo o negro si es positivo. Lo que quiero mostrar en esta aportación es como cambiar el formato de una celda a partir de los valores que introducimos en otra celda que, además, está en otra pestaña de la misma hoja de cálculo (o dicho, mejor, en otra hoja del mismo libro).

Hay muchas opciones de formato condicional: si la celda está vacía, si hay un número, si el número es menor o mayor que una cantidad, si contiene un texto, etc. Pero todas se refieren a la misma celda donde la aplicamos. Si queremos que el formato cambie a partir del contenido de una celda diferente, hay que utilizar la última opción de todas, fórmula personalizada.

Esta fórmula siempre comenzará con un igual. Por ejemplo, podemos poner

=B1="F"

Ahora, nuestra celda actual, supongamos A1, cambiará de formato cuando en la celda B1 introduzcamos el valor F.

Además, podríamos hacer que este formato condicional tuviera efecto en un rango de celdas, y no solo en la celda A1. Por ejemplo, podría tener efecto en el rango A1: A10. Para conseguirlo, tenemos dos opciones. O bien copiamos y pegamos (con la opción pega solo el formato condicional) o simplemente indicamos el rango A1: A10 en la casilla donde dice Aplica al intervalo.

Aunque no lo veremos en ninguna parte, como que la fórmula no tiene ningún signo de $, la referencia de las celdas cambia en las otras celdas del rango. En la celda A2, es como si el formato condicional tuviera la fórmula = B2 = "F", aunque si miramos el formato condicional, sigue indicando la fórmula respecto a B1.

Hasta aquí, todo muy bien. ¿Pero qué pasa si queremos que la celda que contiene el valor que produce el cambio de formato está en otra hoja? Sería lógico pensar que solo hay que indicar la celda con el nombre de la hoja. Por ejemplo, = ‘Hoja 2’! B1 = "F"

Puede ser muy lógico, pero no funciona. Para que funcione, necesitamos utilizar otra fórmula, la fórmula iNDIRECT. Así pues, deberíamos escribir,

=INDIRECT("'Hoja 2'!B1")="F"

Tampoco parece tan complicado, ¿verdad? Pero, como siempre en estas cosas, hay efectos colaterales y no funciona bien. Tened en cuenta que ahora la referencia a la celda B1 está dentro de un campo de texto (está entre comillas). Por lo tanto, la hoja de cálculo no lo interpreta como una referencia a una celda sino como un texto. ¿Y qué consecuencia tiene esto? Que solo funciona bien en la celda A1. En las otras, aunque no haya ningún signo de dólar, no funciona. Cuando en la celda ‘Hoja 2’! B1 se pone una F, todo el rango A1: A10 cambia de color. Cuando se deja en blanco o se introduce cualquier otro valor, todo el rango A1: A10 pierde el color.

¿Hay solución? Sí, por supuesto. Basta complicar un poco más la fórmula para qué la referencia a B1 no esté en un campo de texto.

=INDIRECT("'Hoja 2'!"&ADDRESS(ROW(A1);COLUMN(A1)+1))="F"

Dentro de la fórmula INDIRECT, a partir del campo de texto, ponemos la fórmula ADDRESS, que nos creará una referencia a una celda, a partir de indicarle un número de fila y un número de columna.

Como fila, indicaremos la misma de nuestra celda A1, por tanto, ROW (A1). Y como columna, una más que la de nuestra celda A1, ya que en la hoja 2 miramos la columna B.

De este modo, las referencias a A1 sí son referencias a celdas y no son campos de texto. Por tanto, al aplicarlo al rango, sí se actualizarán y el formato condicional funcionará correctamente.