¿Cómo clasificar valores por grupo en Excel?
Trabajar con datos agrupados en Excel a menudo requiere comparar valores dentro de cada grupo, como clasificar cifras de ventas por región, calificaciones por clase o montos de transacciones por categoría. Aunque Excel proporciona herramientas sólidas para clasificar datos, la clasificación dentro de grupos (también conocida como "clasificación por grupo" o "clasificación condicional") requiere un enfoque específico. Esto es especialmente útil cuando necesitas evaluar el rendimiento o identificar los registros más altos y más bajos entre diferentes categorías sin mezclar resultados entre grupos. Los siguientes métodos exploran soluciones prácticas para clasificar valores por grupo, facilitando interpretar y analizar tus datos de manera precisa en tareas cotidianas.
Clasificar valores por grupo
Código VBA: Usa una macro para automatizar la clasificación de valores dentro de cada grupo
Clasificar valores por grupo
En situaciones donde necesitas clasificar valores dentro de grupos distintos, como puntuar estudiantes por clase o listar ventas por diferentes regiones, Excel no tiene una función directa de "clasificación por grupo". Sin embargo, una fórmula bien diseñada puede lograr la clasificación por grupo de manera eficiente y sin manipulación extra de datos.
Para hacer esto, puedes usar una fórmula matricial que combine pruebas lógicas con funciones de agregación. Este enfoque te permite comparar cada valor solo dentro de su grupo designado, produciendo la clasificación requerida para cada punto de datos.
Sigue estos pasos:
- Prepara tus datos agrupados en columnas, como Grupo (A2:A11) y Valor (B2:B11).
- Selecciona una celda en blanco adyacente a tus datos—generalmente, en la primera fila junto a tus valores, por ejemplo, la celda C2.
- Introduce la siguiente fórmula:
=SUMPRODUCT(($A$2:$A$11=A2)*(B2<$B$2:$B$11))+1
Esta fórmula funciona contando cuántos valores dentro del mismo grupo son menores que el valor actual. Aquí está lo que significa cada parámetro:
- ($A$2:$A$11=A2)
→ Esto verifica si cada celda en el rango A2:A11 es igual al valor en A2.
→ Devuelve una matriz de VERDADERO/FALSO (o 1/0) que representa si cada fila pertenece al mismo grupo que A2. - (B2<$B$2:$B$11)
→ Esto verifica cuántos valores en B2:B11 son mayores que B2.
→ Devuelve VERDADERO (1) si B2 es menor que un valor dado, FALSO (0) de lo contrario. - * (Multiplicación)
→ Esto combina las dos condiciones: - Coincidencia de grupo (A2)
El valor en B2 es menor que otros
→ Entonces, solo se contarán las filas que están en el mismo grupo y tienen un valor menor. - SUMAPRODUCTO(...)
→ Suma el número de filas que cumplen ambas condiciones. - +1
→ Las clasificaciones comienzan en 1 (en lugar de 0), por lo que añadimos 1 al recuento de valores menores.
Una vez ingresada la fórmula en C2, arrastra el controlador de autocompletar hacia abajo para llenar esta fórmula para todas las filas relevantes en tu conjunto de datos. La fórmula se ajustará automáticamente para usar el grupo y el valor de cada fila, devolviendo la clasificación dentro de ese grupo.
Consejos y precauciones:
- Si tu rango es grande, recuerda actualizar las referencias de celdas correspondientemente.
- Para clasificaciones en orden descendente (por ejemplo, el valor más alto es 1), modifica la comparación de la fórmula de
B2<$B$2:$B$11
aB2>$B$2:$B$11
. - Para manejar valores duplicados, esta fórmula asigna la misma clasificación a valores iguales dentro del mismo grupo. Si requieres rangos únicos secuenciales, considera usar columnas auxiliares adicionales.
Este método basado en fórmulas es flexible y se aplica fácilmente a la mayoría de las estructuras de tablas agrupadas en Excel. Sin embargo, para conjuntos de datos muy grandes, el rendimiento del cálculo puede disminuir debido a la dependencia de la lógica matricial.
Código VBA: Usa una macro para automatizar la clasificación de valores dentro de cada grupo
Para usuarios que buscan automatizar el proceso de clasificación, o manejar conjuntos de datos más grandes de manera más eficiente, escribir una macro VBA puede ser un enfoque valioso. Las macros pueden automatizar pasos repetitivos, ofrecer más personalización y procesar datos rápidamente en comparación con fórmulas complejas. Esto es ideal para escenarios como la generación programada de informes, tareas de clasificación repetitivas o cuando quieres evitar el desorden de fórmulas en tu hoja de cálculo.
Antes de proceder, asegúrate de guardar tu trabajo y habilitar macros en la configuración de Excel. Así es cómo puedes crear y ejecutar esta solución:
- Presiona Alt + F11 para habilitar el editor VBA. En la ventana de Microsoft Visual Basic para Aplicaciones que aparece, haz clic en Insertar > Módulo, luego pega el siguiente código en el módulo abierto:
Sub RankValuesByGroup()
Dim DataRange As Range
Dim GroupRng As Range
Dim ValueRng As Range
Dim OutCol As Range
Dim dictGroups As Object
Dim arrValues, arrRanks
Dim i As Long, j As Long
Dim GroupKey As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set DataRange = Application.InputBox("Select the data table range (including group and value columns)", xTitleId, Selection.Address, Type:=8)
If DataRange Is Nothing Then Exit Sub
Set GroupRng = Application.InputBox("Select the group column within your range", xTitleId, DataRange.Columns(1).Address, Type:=8)
Set ValueRng = Application.InputBox("Select the value column to rank within your range", xTitleId, DataRange.Columns(2).Address, Type:=8)
Set OutCol = DataRange.Offset(0, DataRange.Columns.Count).Resize(DataRange.Rows.Count, 1)
OutCol.Cells(1).Value = "RankByGroup"
Set dictGroups = CreateObject("Scripting.Dictionary")
arrValues = ValueRng.Value
arrRanks = ValueRng.Value
' Build group dictionaries for ranking
For i = 2 To UBound(arrValues, 1)
GroupKey = GroupRng.Cells(i, 1).Value
If Not dictGroups.Exists(GroupKey) Then
dictGroups.Add GroupKey, CreateObject("System.Collections.ArrayList")
End If
dictGroups(GroupKey).Add arrValues(i, 1)
Next i
' Rank within each group
For i = 2 To UBound(arrValues, 1)
GroupKey = GroupRng.Cells(i, 1).Value
Dim countLower As Long
countLower = 0
For j = 0 To dictGroups(GroupKey).Count - 1
If dictGroups(GroupKey)(j) < arrValues(i, 1) Then
countLower = countLower + 1
End If
Next j
arrRanks(i, 1) = countLower + 1
Next i
' Output results
For i = 2 To UBound(arrRanks, 1)
OutCol.Cells(i, 1).Value = arrRanks(i, 1)
Next i
MsgBox "Ranking by group completed.", vbInformation, xTitleId
End Sub
- Haz clic en Ejecutar. Aparecerá un cuadro de diálogo que te pedirá seleccionar tu rango de datos completo, columna de grupo y columna de valores. La macro generará una nueva columna con las clasificaciones para cada valor dentro de su grupo.
Notas y solución de problemas:
- Asegúrate de que las selecciones de columnas coincidan con tus datos: las columnas de grupo y valores deben alinearse correctamente.
- Si el encabezado de datos está incluido, ajusta el índice inicial del bucle en el código para una clasificación correcta (según tu estructura de datos).
- Para clasificar en orden descendente, modifica la comparación
Si dictGroups(GroupKey)(j) < arrValues(i,1)
en consecuencia. - Si encuentras advertencias de permisos o seguridad de macros, revisa la configuración de Seguridad de Macros de Excel en Archivo > Opciones > Centro de Confianza.
Este método VBA ofrece flexibilidad y un rendimiento robusto para aplicaciones más avanzadas o ampliadas, especialmente cuando se integra con flujos de trabajo automatizados de generación de informes.

Descubre la Magia de Excel con Kutools AI
- Ejecución Inteligente: Realiza operaciones en celdas, analiza datos y crea gráficos, todo impulsado por comandos simples.
- Fórmulas Personalizadas: Genera fórmulas adaptadas para optimizar tus flujos de trabajo.
- Codificación VBA: Escribe e implementa código VBA sin esfuerzo.
- Interpretación de Fórmulas: Comprende fórmulas complejas con facilidad.
- Traducción de Texto: Supera las barreras del idioma dentro de tus hojas de cálculo.
Las mejores herramientas de productividad para Office
Mejora tu dominio de Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...
Office Tab incorpora la interfaz de pestañas en Office y facilita mucho tu trabajo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!
Todos los complementos de Kutools. Un solo instalador
El paquete Kutools for Office agrupa complementos para Excel, Word, Outlook y PowerPoint junto con Office Tab Pro, ideal para equipos que trabajan en varias aplicaciones de Office.





- Suite todo en uno: complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un solo instalador, una licencia: configuración en minutos (compatible con MSI)
- Mejor juntos: productividad optimizada en todas las aplicaciones de Office
- Prueba completa de30 días: sin registro ni tarjeta de crédito
- La mejor relación calidad-precio: ahorra en comparación con la compra individual de complementos