Skip to main content

Kutools para Office — Una Suite. Cinco Herramientas. Haz Más.

¿Cómo clasificar valores por grupo en Excel?

Author Sun Last modified

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.
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

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. 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 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 a B2>$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:

  1. 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
  1. 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.


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 identificar duplicados | Eliminar filas en blanco | Combinar columnas o celdas sin perder datos | Redondear...
Super BUSCARV: Búsqueda por varios criterios | Búsqueda por varios valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Cree 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...)...
Los15 principales 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 de combinar y dividir (Combinar filas avanzado, Dividir celdas, ...) ... y más
Utiliza Kutools en tu idioma preferido: admite inglés, español, alemán, francés, chino y más de40 idiomas adicionales.

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.

Excel Word Outlook Tabs PowerPoint
  • 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