¿Cómo se calcula la mediana en Excel aplicando varias condiciones?
Calcular la mediana de un conjunto de datos en Excel es una tarea habitual en análisis de datos e informes. Aunque obtener la mediana de un rango sencillo es rápido con las funciones estándar de Excel, a menudo surge la necesidad de hallar el valor mediano únicamente entre los datos que cumplen varios criterios específicos; por ejemplo, determinar la cantidad media de ventas de un producto concreto en una fecha determinada dentro de un conjunto de datos extenso. Realizar este tipo de operaciones condicionales complejas solo con funciones tradicionales puede resultar complicado. En este tutorial, presentamos diversas 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 se cumplen varias condiciones
- Código VBA: Calcular la mediana con varias condiciones
Calcular la mediana si se cumplen varias condiciones
Supongamos que dispone de un rango de datos como el que se muestra a continuación y que su objetivo es determinar el valor mediano que cumpla dos criterios: por ejemplo, hallar la mediana de la columna B donde la columna A sea «a» y la columna C contenga la fecha «2-ene». Este tipo de escenario es especialmente habitual en informes de ventas, resultados de exámenes escolares y otros análisis de datos empresariales o académicos en los que se requiere filtrar según múltiples categorías.

Para mayor claridad, prepare la hoja de cálculo como sigue: en su libro de Excel, introduzca sus condiciones y cree una disposición similar a la de la imagen siguiente. Aquí, la columna E enumera los criterios correspondientes a la columna A, y la fila 1, desde la columna F en adelante, muestra los criterios de fecha procedentes de la columna C.

Para calcular la mediana que cumpla varios criterios, puede usar una fórmula matricial que combine las funciones MEDIANA y SI para generar una lista filtrada de valores según sus condiciones. Así es como se hace:
1.Haga clic en la celda F2, donde desee que aparezca el resultado de la mediana, e introduzca 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, en cada fila, si el valor de la columna A coincide con la condición indicada en E2 y si el valor de la columna C coincide con la cabecera de F1. Cuando se cumplen ambas condiciones, toma el valor correspondiente de la columna B para calcular la mediana.
2. Tras introducir la fórmula, pulse Ctrl + Mayús + Entrar (no solo Entrar), ya que se trata de una fórmula matricial. Excel rodeará automáticamente la fórmula con llaves { } para indicar que es una fórmula matricial.
3.Arrastre el controlador de relleno desde la esquina inferior derecha de F2 para copiar la fórmula en otras celdas relevantes donde necesite medianas bajo distintas condiciones, tal como se muestra a continuación:

Explicación de parámetros y consejos de uso: En la fórmula, $A$2:$A$12 es el rango que contiene la primera condición (por ejemplo, nombres de productos), $C$2:$C$12 es el rango de la segunda condición (por ejemplo, fechas) y $B$2:$B$12 es el rango que contiene los valores numéricos de los que desea obtener la mediana. Ajuste estos rangos según su propia hoja de cálculo. Utilice siempre referencias absolutas (con el símbolo $) para garantizar que los rangos no cambien al copiar la fórmula.
Precauciones:Si ningún valor cumple ambas condiciones, la fórmula devolverá un error #¡NUM!Para evitar confusiones, puede anidar la fórmula dentro de SI.ERRORpara que devuelva una celda vacía 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úrese de que sus datos no contengan celdas vacías ni valores no numéricos en la columna de la mediana, ya que esto podría afectar los resultados.
Este enfoque basado en fórmulas es ideal cuando trabaja con condiciones relativamente sencillas (normalmente hasta dos o tres criterios). Es rápido de configurar y no requiere conocimientos de programación. Sin embargo, para filtrados complejos con condiciones dinámicas o conjuntos de datos grandes, mantener o editar fórmulas matriciales puede volverse engorroso.
Código VBA: Calcular la mediana con varias condiciones
En escenarios donde necesite automatizar el cálculo de la mediana condicional —por ejemplo, al manejar múltiples condiciones, conjuntos de datos extensos o criterios que cambian con frecuencia—, una solución en VBA puede ser una alternativa práctica. Con VBA, podrá crear una macro reutilizable que calcule la mediana según cualquier número de condiciones. Las soluciones basadas en VBA resultan especialmente útiles si busca agilizar análisis repetitivos o desarrollar procesos personalizados en Excel para informes y paneles.
Siga estos pasos para utilizar VBA en el cálculo de la mediana condicional:
1. Haga clic en Herramientas para desarrolladores > Visual Basic. Se abrirá una nueva ventana de Microsoft Visual Basic para Aplicaciones. Haga clic en Insertar > Módulo y, a continuación, pegue 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. Haga clic en el botón
(o pulse F5) para ejecutar el código. Se le pedirá que seleccione cada uno de los rangos necesarios e introduzca sus criterios. Una vez completados los mensajes, el resultado (la mediana que cumple todos los criterios) se mostrará en la celda de destino que haya especificado.
Esta macro le permite seleccionar de forma flexible el rango de valores, los rangos de criterios, los valores de los criterios y la ubicación del resultado cada vez que se ejecute. Además, puede adaptar el código con facilidad para incluir más condiciones si fuera necesario.
Consejos y solución de problemas: Al utilizar soluciones en VBA, asegúrese de que todos los rangos seleccionados tengan la misma longitud y de que los criterios coincidan con el tipo de datos y el formato adecuados (por ejemplo, texto frente a fechas). Si ningún valor cumple los criterios, la salida mostrará «No hay coincidencias». Para mayor estabilidad, guarde su libro antes de ejecutar la macro y habilite siempre las macros cuando se le solicite. Esta solución en VBA es ideal para usuarios familiarizados con la configuración de seguridad de macros y para su uso en flujos de trabajo automatizados en Excel.
En resumen, el enfoque mediante VBA automatiza cálculos complejos de la mediana que serían engorrosos o difíciles de realizar únicamente con fórmulas, siendo especialmente adecuado para condiciones variables, recálculos frecuentes y conjuntos de datos grandes.
Artículos relacionados:
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos