Sustituir condicionales anidados por BUSCARV en Excel

Sustituir condicionales anidados por BUSCARV en Excel

Todos hemos escrito esa fórmula: un SI dentro de otro SI dentro de otro, hasta que la celda es ilegible y nadie se atreve a tocarla tres meses después.

En este tutorial vemos la alternativa: aislar cada condición en su propia columna, convertirlas en un código de ceros y unos, y resolver el estado final con un BUSCARV contra una pequeña tabla de estados. Ganas dos cosas — la fórmula se lee de un vistazo, y la tabla te obliga a pensar todas las combinaciones posibles del árbol de decisiones en vez de descubrirlas por accidente.

La fórmula que nadie quiere heredar

Es probablemente el problema que más crece a medida que enriqueces una hoja: los condicionales anidados. Necesitas rellenar una columna de estado en función de varias columnas, y empiezas metiendo un SI dentro de otro SI dentro de otro, hasta que la celda es imposible de interpretar.

El caso de ejemplo es de manual: una lista de tareas con su fecha prevista, una duración estimada y la fecha en que se entregó o se prevé entregar. Y a partir de ahí, una fórmula larguísima: si la entrega es anterior a hoy, se abre otro condicional; si se entregó antes de lo previsto, entrega correcta; si fue después, entrega con retraso; si todavía no ha llegado la fecha, otra rama distinta. Cubres todas las opciones posibles y acabas con algo que funciona pero que no se puede leer.

La alternativa: aislar cada condición en su columna

En vez de meter toda la lógica en una celda, la repartimos. Cada condición se convierte en una columna independiente que solo responde a una pregunta, y devuelve verdadero o falso.

En el ejemplo trabajamos con tres:

  • ¿la fecha de entrega es posterior a hoy?
  • ¿la fecha de entrega —la real o la estimada— va con retraso respecto al plazo?
  • ¿la línea pertenece al proyecto A, el que tiene prioridad más alta?

Tres condiciones dan ocho combinaciones posibles, que son todas las ramas de ese árbol de decisiones que antes estaba enterrado en la fórmula.

Paso clave: convertir las condiciones en un código

Aquí está el truco. A cada una de esas columnas le asignamos un 1 o un 0, y luego las concatenamos en una sola cadena.

Así, cada fila acaba con un código de tres cifras: 101, 011, 110. Cada uno significa algo muy concreto y muy legible — el primer dígito dice si ya hemos pasado la fecha de entrega, el segundo si va con retraso, el tercero si es del proyecto clave.

Lo bonito es que el código se calcula solo. Cambian las fechas, cambia el código, y con él el estado.

La tabla de estados

Con los códigos generados, montamos una pequeña tabla de apoyo: en una columna las ocho combinaciones posibles, y en la otra qué significa cada una.

Por ejemplo: una tarea a la que todavía no ha llegado la fecha, que no va tarde según la estimación y que no es del proyecto clave, está en plazo. Otra a la que tampoco ha llegado la fecha pero cuya estimación ya apunta a que llegará tarde, va con retraso. Y así con las ocho.

Esto tiene un efecto secundario que es la mitad del valor del método: te obliga a pensar qué situaciones se pueden dar en todo el árbol y a darle una respuesta explícita a cada una. En la fórmula anidada esas ramas también existían, pero las descubrías por accidente cuando algo salía mal.

El cierre: un BUSCARV y ya está

Solo queda resolver el estado. Un BUSCARV que busca el código concatenado en la tabla de estados y devuelve el texto de la segunda columna, con coincidencia exacta —el último argumento en falso.

El resultado es idéntico al de la fórmula monstruosa. La diferencia es todo lo demás: si mañana hay que cambiar qué significa 101, se edita una celda de la tabla, no se reescribe una fórmula de seis líneas. Y si aparece un caso nuevo, se añade una condición más y una fila más.

La lección de fondo

Hay una especie de orgullo en hacer fórmulas larguísimas y complicadas, como si eso marcase el nivel de tus conocimientos de Excel. Es justo lo contrario.

Cuanto más separas en columnas, cuanto más organizas para que se pueda leer —no hoy, que estás caliente con el fichero, sino de aquí a tres meses, o cuando se lo pases a otra persona— más conocimiento estás aplicando de verdad. Porque ahí ya no se trata solo de conocer la función: se trata de entender por dónde circula la información en tu hoja.

Más contenido de Excel en InflueXcel