Skip to main content

¿Cómo clasificar valores por grupo en Excel?

Author: Sun Last Modified: 2025-07-21

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 con precisión en tareas cotidianas.
A screenshot showing a grouped data set with ranked values in Excel

Clasificar valores por grupo
Código VBA - Usa una macro para automatizar la clasificación de valores dentro de cada grupo


arrow blue right bubble Clasificar valores por grupo

Para situaciones donde necesites 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 elaborada 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 el rango requerido 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 comprueba 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 comprueba cuántos valores en B2:B11 son mayores que B2.
    → Devuelve VERDADERO (1) si B2 es menor que un valor dado, FALSO (0) en caso 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
    → Los rangos comienzan en 1 (en lugar de 0), así que sumamos 1 al recuento de valores menores.

Una vez ingresada la fórmula en C2, arrastra el controlador de autollenado hacia abajo para llenar esta fórmula en todas las filas relevantes de tu conjunto de datos. La fórmula se ajustará automáticamente para usar el grupo y el valor de cada fila, devolviendo el rango dentro de ese grupo. A screenshot showing the Excel formula applied to rank values by group in a worksheet

Consejos y precauciones:

  • Si tu rango es grande, recuerda actualizar las referencias de celda en consecuencia.
  • Para rangos 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 a B2>$B$2:$B$11.
  • Para manejar valores duplicados, esta fórmula asigna el mismo rango a valores iguales dentro del mismo grupo. Si necesitas 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 de informes programados, tareas repetitivas de clasificación, o cuando quieres evitar 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 escribir y ejecutar esta solución:

  1. Presiona Alt + F11 para habilitar el editor de VBA. En la ventana de Microsoft Visual Basic for Applications 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
  1. Haz clic en Ejecutar. Aparecerá un cuadro de diálogo que te pedirá seleccionar tu rango completo de datos, columna de grupo y columna de valores. La macro generará entonces una nueva columna con los rangos 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 se incluye el encabezado de datos, ajusta el índice inicial del bucle en el código para una clasificación correcta (según la estructura de tus datos).
  • Para clasificar en orden descendente, modifica la comparación Si dictGroups(ClaveGrupo)(j) < arrValues(i,1) en consecuencia.
  • Si encuentras advertencias de permisos o seguridad de macros, verifica la configuración de Seguridad de Macros de Excel bajo Archivo > Opciones > Centro de Confianza.

Este método VBA ofrece flexibilidad y un rendimiento robusto para aplicaciones más avanzadas o a gran escala, especialmente cuando se integra con flujos de trabajo de informes automatizados.


a screenshot of kutools for excel ai

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.
Potencia tus capacidades de Excel con herramientas impulsadas por IA. ¡Descarga Ahora y experimenta una eficiencia como nunca antes!

Las mejores herramientas de productividad para Office

🤖 Kutools AI Aide: Revoluciona el análisis de datos basado en: Ejecución inteligente | Generar código | Crear fórmulas personalizadas | Analizar datos y generar gráficos | Invocar Funciones mejoradas
Funciones populares: Buscar, resaltar o marcar duplicados | Eliminar filas en blanco | Combinar columnas o celdas sin perder datos | Redondear...
Super BUSCARV: Búsqueda por varios criterios | Búsqueda de varios valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Crea rápidamente una lista desplegable | Lista desplegable dependiente | Lista desplegable de selección múltiple....
Administrador de columnas: Agregar un número específico de columnas | Mover columnas | Alternar el estado de visibilidad de columnas ocultas | Comparar rangos y columnas...
Funciones destacadas: Cuadrícula de enfoque | Vista de diseño | Barra de fórmulas mejorada | Administrador de Libro de trabajo y Hoja de cálculo | Biblioteca de AutoTexto | Selector de fechas | Combinar Datos | Cifrar/Descifrar celdas | Enviar correo electrónico por lista | Super Filtro | Filtro especial (filtrar celdas con fuente en negrita/cursiva/tachado...)...
Top15 conjuntos de herramientas:12 herramientas de texto (Agregar texto, Eliminar caracteres específicos, ...) | Más de50 tipos de gráficos (Diagrama de Gantt, ...) | Más de40 fórmulas prácticas (Calcular edad basada en la fecha de nacimiento, ...) |19 herramientas de inserción (Insertar código QR, Insertar imagen desde ruta, ...) |12 herramientas de conversión (Convertir a palabras, Conversión de moneda, ...) |7 herramientas para combinar y dividir (Combinar filas avanzado, Dividir celdas, ...) | ... y más

Potencia tus habilidades en 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 lleva la interfaz de pestañas a 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 nuevas ventanas.
  • ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!