Skip to main content

¿Cómo calcular la mediana si hay múltiples condiciones en Excel?

Author: Sun Last Modified: 2025-08-06

Calcular la mediana de un conjunto de datos en Excel es una operación que se necesita con frecuencia en el análisis y la generación de informes de datos. Aunque encontrar la mediana para un rango simple puede lograrse rápidamente utilizando funciones estándar de Excel, a menudo surgen situaciones en las que solo necesitas el valor de la mediana de los datos que cumplen varios criterios específicos, por ejemplo, encontrar el monto de ventas medio para un producto particular en una fecha específica dentro de un gran conjunto de datos. Manejar este tipo de operaciones complejas y condicionales únicamente con funciones tradicionales puede ser complicado. En este tutorial, presentaremos varias soluciones prácticas para calcular la mediana con múltiples condiciones en Excel, explorando tanto enfoques basados en fórmulas como la automatización mediante VBA para necesidades avanzadas.


Calcular la mediana si cumple múltiples condiciones

Supongamos que tienes un rango de datos como se muestra a continuación, y tu tarea es determinar el valor de la mediana que cumple dos criterios: por ejemplo, determinar el valor de la mediana de la columna B donde la columna A tiene el valor "a" y la columna C tiene la fecha "2-Ene". Este escenario es especialmente común en informes de ventas, resultados de exámenes de clase y otros análisis de datos empresariales o académicos donde es necesario filtrar por múltiples categorías.

a screenshot of the original data

Para mayor claridad, preparemos la hoja de trabajo de la siguiente manera: En tu hoja de Excel, introduce tus condiciones y crea un diseño similar a la siguiente imagen. Aquí, la columna E enumera los criterios para la columna A, y la fila 1 de las columnas F y siguientes representan los criterios de fecha de la columna C.

a screenshot of typing new required data

Para calcular la mediana cumpliendo múltiples criterios, puedes usar una fórmula matricial que aproveche las funciones MEDIANA y SI para construir una lista filtrada de valores basada en tus condiciones. Así es como lo haces:

1. Haz clic en la celda F2, donde deseas que aparezca el resultado de la mediana, e introduce la siguiente fórmula:

=MEDIAN(IF($A$2:$A$12=$E2,IF($C$2:$C$12=F$1,$B$2:$B$12)))

Esta fórmula funciona comprobando, para cada fila, si el valor en la columna A coincide con la condición en E2 y si el valor en la columna C coincide con el encabezado en F1. Si ambas condiciones se cumplen, recoge el valor en la columna B para el cálculo de la mediana.

2. Después de introducir la fórmula, presiona Ctrl + Shift + Enter (no solo Enter), ya que esta es una fórmula matricial. Excel rodeará automáticamente la fórmula con llaves { } para indicar que es una fórmula matricial.

3. Arrastra el controlador de relleno desde la esquina inferior derecha de F2 para copiar la fórmula en otras celdas relevantes donde necesites medianas bajo diferentes condiciones, como se muestra a continuación:

a screenshot of using the formula

Explicaciones de parámetros y consejos de uso: En la fórmula, $A$2:$A$12 es el rango que contiene la primera condición (como nombres de productos), $C$2:$C$12 es el rango para la segunda condición (como fechas), y $B$2:$B$12 es el rango que contiene los valores numéricos para los cuales deseas la mediana. Ajusta estos rangos según sea necesario para tu propia hoja de trabajo. Siempre utiliza referencias absolutas ($ símbolos) para asegurarte de que los rangos no se desplacen al copiar la fórmula.

Precauciones: Si ningún valor cumple ambas condiciones, la fórmula devolverá un error #¡NUM!. Para evitar confusiones, puedes anidar la fórmula dentro de SI.ERROR para devolver un espacio en blanco o un mensaje personalizado:

=IFERROR(MEDIAN(IF($A$2:$A$12=$E2,IF($C$2:$C$12=F$1,$B$2:$B$12))),"No match")

Asegúrate de que tus datos no contengan celdas vacías o valores no numéricos en la columna de la mediana, ya que esto también puede afectar los resultados.

Este enfoque basado en fórmulas es adecuado cuando tienes condiciones relativamente simples (generalmente hasta dos o tres criterios). Es rápido de configurar y no requiere habilidades de programación. Sin embargo, para filtros complejos con condiciones dinámicas o conjuntos de datos más grandes, mantener o editar fórmulas matriciales puede volverse complicado.


Código VBA - Calcular la mediana con múltiples condiciones

Para escenarios donde necesitas automatizar el cálculo de la mediana condicional —como cuando hay muchas condiciones, conjuntos de datos grandes o los propios criterios cambian con frecuencia— una solución VBA puede ofrecer una alternativa práctica. Usando VBA, puedes construir una macro reutilizable que calcule la mediana basada en cualquier número de condiciones. Las soluciones basadas en VBA son especialmente útiles si quieres optimizar análisis repetitivos o desarrollar procesos personalizados de Excel para informes y paneles de control.

Sigue estos pasos para usar VBA para el cálculo de la mediana condicional:

1. Haz clic en Herramientas de Desarrollo > Visual Basic. Se abrirá una nueva ventana de Microsoft Visual Basic para Aplicaciones. Haz clic en Insertar > Módulo, luego pega el siguiente código en el Módulo:

Sub ConditionalMedian()
    Dim DataRange As Range
    Dim CriteriaRange1 As Range
    Dim CriteriaRange2 As Range
    Dim OutputRange As Range
    Dim Criteria1 As Variant
    Dim Criteria2 As Variant
    Dim TempArr() As Double
    Dim i As Long
    Dim j As Long
    Dim count As Long
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set DataRange = Application.InputBox("Select the range containing median values (e.g., B2:B12):", xTitleId, "", Type:=8)
    Set CriteriaRange1 = Application.InputBox("Select the first criteria range (e.g., A2:A12):", xTitleId, "", Type:=8)
    Criteria1 = Application.InputBox("Enter the first criteria value (e.g., a):", xTitleId, "", Type:=2)
    Set CriteriaRange2 = Application.InputBox("Select the second criteria range (e.g., C2:C12):", xTitleId, "", Type:=8)
    Criteria2 = Application.InputBox("Enter the second criteria value (e.g.,2-Jan):", xTitleId, "", Type:=2)
    Set OutputRange = Application.InputBox("Select the cell to output the result:", xTitleId, "", Type:=8)
    
    count = 0
    For i = 1 To DataRange.Rows.count
        If StrComp(CStr(CriteriaRange1.Cells(i, 1).Value), CStr(Criteria1), vbTextCompare) = 0 And _
           CStr(CriteriaRange2.Cells(i, 1).Value) = CStr(Criteria2) Then
            ReDim Preserve TempArr(count)
            TempArr(count) = DataRange.Cells(i, 1).Value
            count = count + 1
        End If
    Next i
    
    If count = 0 Then
        OutputRange.Value = "No match"
    Else
        Call QuickSort(TempArr, LBound(TempArr), UBound(TempArr))
        If count Mod 2 = 1 Then
            OutputRange.Value = TempArr(count \ 2)
        Else
            OutputRange.Value = (TempArr(count \ 2) + TempArr(count \ 2 - 1)) / 2
        End If
    End If
End Sub

Sub QuickSort(arr() As Double, first As Long, last As Long)
    Dim i As Long
    Dim j As Long
    Dim pivot As Double
    Dim temp As Double
    
    i = first
    j = last
    pivot = arr((first + last) \ 2)
    
    Do While i <= j
        Do While arr(i) < pivot
            i = i + 1
        Loop
        
        Do While arr(j) > pivot
            j = j - 1
        Loop
        
        If i <= j Then
            temp = arr(i)
            arr(i) = arr(j)
            arr(j) = temp
            i = i + 1
            j = j - 1
        End If
    Loop
    
    If first < j Then
        QuickSort arr, first, j
    End If
    
    If i < last Then
        QuickSort arr, i, last
    End If
End Sub

2. Haz clic en el Run button botón (o presiona F5) para ejecutar el código. Se te pedirá que selecciones cada uno de los rangos necesarios e introduzcas tus criterios. Después de completar los mensajes emergentes, el resultado (la mediana que cumple con todos los criterios) se mostrará en la celda objetivo que especificaste.

Esta macro te permite seleccionar de forma flexible el rango de valores, rangos de criterios, valores de criterios y dónde mostrar el resultado cada vez que se ejecuta. También puedes adaptar fácilmente el código para incluir más condiciones si es necesario.

Consejos y solución de problemas: Al usar soluciones VBA, asegúrate de que todos los rangos seleccionados tengan longitudes iguales y que los criterios coincidan con el tipo de datos y formato correctos (por ejemplo, texto frente a fechas). Si ningún valor cumple los criterios, la salida mostrará "Sin coincidencia". Para mayor estabilidad, guarda tu libro antes de ejecutar la macro y siempre habilita macros cuando se te solicite. Esta solución VBA es adecuada para usuarios familiarizados con la configuración de seguridad de macros y para su uso en flujos de trabajo automatizados de Excel.

En resumen, el enfoque VBA automatiza cálculos de mediana complejos que son engorrosos o difíciles de realizar solo con fórmulas. Es especialmente útil cuando se trata de condiciones variables, recálculos frecuentes y grandes conjuntos de datos.


Artículos Relacionados:


Las mejores herramientas de productividad para Office

🤖 Asistente de IA de Kutools: 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 con múltiples criterios | Búsqueda de múltiples valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Crea rápidamente listas desplegables | Lista desplegable dependiente | Lista desplegable con selección múltiple....
Administrador de columnas: Agregar un número específico de columnas | Mover columnas | Cambiar la 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 libros y hojas de cálculo | Biblioteca de AutoTexto | Selector de fechas | Combinar Datos | Encriptar/Descifrar celdas | Enviar correo electrónico por lista | Super Filtro | Filtro especial (filtro negrita/cursiva/tachado...)...
Top15 conjuntos de herramientas:12 herramientas de texto (Agregar texto, Eliminar caracteres, ...) | 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 mucho más
Utiliza Kutools en tu idioma preferido: ¡compatible con Inglés, Español, Alemán, Francés, Chino y más de40 idiomas adicionales!

Impulsa al máximo tu dominio de Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para potenciar la productividad y ahorrar tiempo.Haz clic aquí para obtener la función que más necesitas...


Office Tab aporta una interfaz de pestañas a Office y hace tu trabajo mucho más sencillo

  • 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 vez de en nuevas ventanas.
  • ¡Aumenta tu productividad hasta un50% y reduce cientos de clics de ratón cada día!