En el análisis de datos, una de las tareas más comunes es la segmentación o clasificación. Necesitamos agrupar valores en categorías para poder interpretarlos mejor: ¿qué ventas son «bajas», «medias» o «altas»? ¿qué estudiantes han «suspendido», «aprobado» o conseguido un «sobresaliente»? Hacer esto manualmente es tedioso y propenso a errores.
Afortunadamente, Excel nos ofrece una combinación de funciones increíblemente eficaz para automatizar esta tarea. Usando BUSCARV en su modo de búsqueda aproximada junto con SI.ERROR para gestionar excepciones, podemos crear un sistema de clasificación de datos robusto y dinámico. Esta fórmula no solo es potente, sino también una excelente técnica para realizar análisis básicos al instante.
Sintaxis
=SI.ERROR(BUSCARV(valor_dato_a_clasificar, tabla_rangos_y_categorias, 2, VERDADERO), "Valor no clasificable")
Para entender cómo funciona esta fórmula, vamos a desglosarla en sus componentes principales. Es una anidación de dos funciones que trabajan en equipo:
-
BUSCARV(…): Es el corazón de la operación. Se encarga de buscar el dato a clasificar dentro de una tabla de rangos.
- valor_dato_a_clasificar: Es la celda que contiene el valor numérico que queremos categorizar (por ejemplo, una nota, una cifra de ventas, una edad).
- tabla_rangos_y_categorias: Es una tabla de referencia que tú creas. Debe tener al menos dos columnas. La primera columna contiene el límite inferior de cada rango (por ejemplo, 0, 5, 7, 9) y debe estar ordenada de menor a mayor. La segunda columna contiene la categoría o etiqueta correspondiente a ese rango (por ejemplo, «Suspenso», «Aprobado», «Notable», «Sobresaliente»).
- 2: Este número indica que queremos que
BUSCARVnos devuelva el valor de la segunda columna de nuestratabla_rangos_y_categorias, que es donde se encuentran las etiquetas de clasificación. - VERDADERO: Este es el argumento clave. Le dice a
BUSCARVque realice una búsqueda de coincidencia aproximada. En lugar de buscar un valor exacto, encontrará el valor más grande en la primera columna de la tabla que sea menor o igual que elvalor_dato_a_clasificar.
-
SI.ERROR(…): Actúa como una red de seguridad. Envuelve a
BUSCARVpara gestionar cualquier posible error.- «Valor no clasificable»: Es el mensaje de texto que se mostrará si la función
BUSCARVdevuelve un error. El error más común en este caso es#N/A, que ocurre si el valor a clasificar es menor que el primer valor de nuestra tabla de rangos.
- «Valor no clasificable»: Es el mensaje de texto que se mostrará si la función
Ejemplos
Ejemplo 1: Clasificación de notas de alumnos
Imaginemos que tenemos una lista de notas de alumnos y queremos asignarles una calificación textual (Suspenso, Aprobado, Notable, Sobresaliente). Primero, creamos nuestra tabla de rangos y categorías (en el rango E2:F5). Es fundamental que la primera columna (Límite Nota) esté ordenada de forma ascendente.
| A | B | E | F | ||
|---|---|---|---|---|---|
| 1 | Alumno | Nota | Calificación | Límite Nota | Categoría |
| 2 | Ana | 8,5 | Notable | 0 | Suspenso |
| 3 | Luis | 4,9 | Suspenso | 5 | Aprobado |
| 4 | Carla | 9,8 | Sobresaliente | 7 | Notable |
| 5 | Marcos | 6,2 | Aprobado | 9 | Sobresaliente |
| 6 | Elena | -1 | Valor no clasificable |
La fórmula que escribiríamos en la celda C2 y arrastraríamos hacia abajo sería:
=SI.ERROR(BUSCARV(B2, $E$2:$F$5, 2, VERDADERO), "Valor no clasificable")
Resultados explicados:
- Para Ana (8,5),
BUSCARVbusca en la columna E. El valor más alto que es menor o igual a 8,5 es 7. Por lo tanto, devuelve «Notable». - Para Luis (4,9), el valor más alto menor o igual a 4,9 es 0. Devuelve «Suspenso».
- Para Elena (-1), el valor es menor que el primer elemento de la tabla (0), lo que provoca un error
#N/AenBUSCARV. La funciónSI.ERRORdetecta este error y muestra «Valor no clasificable».
Ejemplo 2: Segmentación de clientes por volumen de compra
Una empresa quiere clasificar a sus clientes en segmentos (Bronce, Plata, Oro, Platino) según su volumen total de compras. Se crea una tabla de clasificación (rango E2:F5) con los importes mínimos para cada nivel.
| A | B | E | F | ||
|---|---|---|---|---|---|
| 1 | Cliente | Volumen Compra | Segmento | Mínimo Compra | Nivel Cliente |
| 2 | Cliente 101 | 850 € | Bronce | 0 € | Bronce |
| 3 | Cliente 102 | 2.500 € | Plata | 1.000 € | Plata |
| 4 | Cliente 103 | 15.200 € | Platino | 5.000 € | Oro |
| 5 | Cliente 104 | 5.000 € | Oro | 10.000 € | Platino |
La fórmula en la celda C2 sería:
=SI.ERROR(BUSCARV(B2, $E$2:$F$5, 2, VERDADERO), "Sin segmento")
Aquí, un cliente con 15.200 € en compras supera el límite de 10.000 €, por lo que BUSCARV encuentra 10.000 como el valor más alto menor o igual y le asigna correctamente el segmento «Platino».
Aplicaciones Prácticas
- 1Recursos Humanos: Asignar bonus o evaluaciones de desempeño basadas en rangos de puntuación o cumplimiento de objetivos.
- 2Logística: Clasificar paquetes por peso o tamaño en categorías como «Pequeño», «Mediano», «Grande» o «Palet» para determinar los costes de envío.
- 3Finanzas: Calcular tramos impositivos (por ejemplo, IRPF) aplicando diferentes porcentajes según el nivel de ingresos.
- 4Marketing: Segmentar usuarios en grupos de edad (Generación Z, Millennial, etc.) a partir de su año de nacimiento para campañas personalizadas.
Observaciones
¡Muy importante! La clave para que esta fórmula funcione correctamente es que la primera columna de tu tabla de rangos y categorías (el argumento tabla_rangos_y_categorias) debe estar ordenada de forma ascendente. Si no lo está, BUSCARV con el argumento VERDADERO producirá resultados impredecibles y erróneos.
La función SI.ERROR es una herramienta muy útil que captura cualquier tipo de error que pueda devolver BUSCARV (no solo #N/A), lo que hace que tu hoja de cálculo sea más limpia y fácil de leer para otros usuarios.
Errores comunes
- #N/A: Este error aparece si el
valor_dato_a_clasificares menor que el primer valor de la primera columna de tu tabla de rangos. Nuestra fórmula lo gestiona elegantemente mostrando el texto alternativo («Valor no clasificable» o «Sin segmento»). - #¡REF!: Ocurre si el indicador de columna (el `2` en nuestro caso) es mayor que el número de columnas en la tabla de rangos. Por ejemplo, si nuestra tabla solo tiene 2 columnas e intentamos devolver la tercera.
SI.ERRORtambién capturará este error. - Resultados incorrectos: No es un error de Excel, pero es el fallo más común. Si la clasificación es incorrecta, revisa inmediatamente que la primera columna de tu tabla de rangos esté ordenada de menor a mayor.
Compatibilidad
| Función | Excel 2003 e inferior | Excel 2007 | Excel 2010 y posterior | Excel para la Web | Excel para Mac |
|---|---|---|---|---|---|
| BUSCARV | Sí | Sí | Sí | Sí | Sí |
| SI.ERROR | No | Sí | Sí | Sí | Sí |
La combinación de ambas funciones es compatible con Excel 2007 y todas las versiones posteriores.
Alternativas
Aunque la combinación SI.ERROR + BUSCARV es un clásico, Excel moderno ofrece alternativas más potentes y a veces más sencillas:
-
=BUSCARX(valor_buscado, rango_busqueda, rango_devolucion, "No encontrado", -1)La función
BUSCARXes la sucesora moderna deBUSCARV. Para la clasificación, se usa el modo de coincidencia-1(buscar el siguiente elemento menor). Es más flexible ya que los rangos de búsqueda y devolución pueden estar separados y no necesita que la tabla esté ordenada de una forma específica si se usan los modos de coincidencia apropiados. -
=SI.CONJUNTO(A2<5, "Suspenso", A2<7, "Aprobado", A2<9, "Notable", A2>=9, "Sobresaliente")La función
SI.CONJUNTO(disponible en Microsoft 365 y Excel 2019+) o una serie de funcionesSIanidadas (=SI(A2<5, "Suspenso", SI(A2<7, "Aprobado", ...))) pueden lograr el mismo objetivo. Son útiles para pocas categorías, pero se vuelven difíciles de leer y mantener si la lógica de clasificación es compleja y tiene muchos niveles.
