¿Cómo encontrar el valor máximo o mínimo dentro de un rango de fechas específico (entre dos fechas) en Excel?
En el trabajo diario con análisis de datos, especialmente al manejar registros transaccionales o series temporales, a menudo necesitará identificar el valor más alto o más bajo dentro de un período específico. Por ejemplo, imagine que dispone de una tabla como la que se muestra en la siguiente captura de pantalla y desea determinar el valor máximo o mínimo entre dos fechas, por ejemplo, del 1/7/2016 al 1/12/2016. Este es un requisito habitual al generar informes para períodos concretos, comparar el rendimiento mensual o detectar picos y mínimos en los datos. Este artículo le guiará paso a paso por diversas soluciones prácticas mediante fórmulas de Excel, código VBA y funciones integradas, permitiéndole obtener con rapidez y precisión el valor que necesita.

➤ Buscar el valor máximo o Valor mínimo en un Rango de fechas determinado con fórmulas matriciales
➤ Código VBA: buscar automáticamente el valor máximo o Valor mínimo en un rango de Fecha específica
➤ Otros métodos integrados de Excel: usar Tabla Dinámica para filtrar y mostrar los valores máximo/mínimo por Rango de fechas
Buscar el valor máximo o Valor mínimo en un determinado Rango de fechas con fórmulas matriciales
Un enfoque sencillo consiste en utilizar fórmulas matriciales en Excel, que le permiten calcular valores según múltiples criterios, como verificar si las fechas se encuentran dentro de su rango limitado. Este método es ideal para conjuntos de datos de tamaño moderado y para usuarios familiarizados con la introducción de fórmulas.
Suponga que sus fechas están en la columna A (A5:A17) y los valores correspondientes en la columna B (B5:B17), con la fecha de inicio y la fecha de fin del intervalo introducidas en las celdas B1 y D1, respectivamente.
1. Seleccione una celda vacía en la que desee mostrar el resultado (por ejemplo, E2).
Encontrar el Valor máximo entre el 1/7/2016 y el 1/12/2016:
2. Introduzca la siguiente fórmula en la celda seleccionada. Tras editarla, pulse Ctrl+Mayús+Intro (no solo Intro) para que Excel la reconozca como fórmula matricial:
=MAX(IF((A5:A17=$B$1),B5:B17,"")) Esta fórmula identifica las fechas comprendidas entre la fecha de inicio y la fecha de fin, y únicamente tiene en cuenta los valores de las filas coincidentes para calcular el máximo.

Encontrar el Valor mínimo entre el 1/7/2016 y el 1/12/2016:
3. Para encontrar el mínimo dentro del mismo rango de fechas, utilice un enfoque similar. Introduzca la siguiente fórmula (y, nuevamente, confírmela con)Ctrl+Mayús+Intro):
=MIN(IF((A5:A17=$B$1), B5:B17, "")) Esta fórmula funciona de la misma manera, pero devuelve el valor mínimo que cumple con sus criterios de fecha.

Notas:
- En los ejemplos anteriores, A5:A17 es el rango que contiene sus fechas, $B$1 es la fecha de inicio, $D$1 es la fecha de fin y B5:B17 es el rango de valores que desea evaluar. Ajuste estas referencias para que coincidan con sus datos reales.
- Asegúrese de que los dos rangos a los que hace referencia tengan la misma longitud; de lo contrario, la fórmula podría generar errores.
- Compruebe cuidadosamente que las entradas de fecha estén formateadas como fechas y no como texto; de lo contrario, la fórmula podría no funcionar según lo previsto.
Consejos:
- Si trabaja con Office 365 o Excel 2021 y versiones posteriores, puede utilizar las funciones MAXIFS y MINIFS para realizar cálculos basados en criterios de forma más sencilla.
- Si la fórmula devuelve un 0 o una celda en blanco inesperadamente, verifique que su Rango de fechas se superponga con las fechas disponibles en los datos y compruebe si hay celdas vacías inadvertidas.
Código VBA: Encontrar automáticamente el valor máximo o Valor mínimo en un rango Fecha específica
Para usuarios que gestionan grandes volúmenes de datos, necesitan repetir esta tarea con frecuencia o buscan automatizar informes, una solución mediante macro VBA puede identificar eficazmente el valor máximo o mínimo dentro del rango de fechas seleccionado. Con VBA, es posible solicitar al usuario que elija los rangos pertinentes e introduzca las fechas en cada ejecución, lo que la convierte en una opción ideal para aplicaciones dinámicas o integración avanzada en flujos de trabajo.
1. Vaya a Programador > Visual Basic. En la ventana del editor de VBA que aparece, haga clic en Insertar > Módulo y, a continuación, copie y pegue el siguiente código en el nuevo módulo:
Sub FindMaxMinInDateRange_Robust()
Dim ws As Worksheet
Dim dateRange As Range, valueRange As Range
Dim startCell As Range, endCell As Range
Dim startDate As Date, endDate As Date
Dim i As Long
Dim d As Date, v As Variant
Dim hasHit As Boolean
Dim maxV As Double, minV As Double
Const TITLE As String = "KutoolsforExcel"
On Error GoTo FailFast
Set ws = ActiveSheet
Set dateRange = Application.InputBox("Select the DATE range:", TITLE, Type:=8)
If dateRange Is Nothing Then Exit Sub
Set valueRange = Application.InputBox("Select the VALUE range (same rows as date range):", TITLE, Type:=8)
If valueRange Is Nothing Then Exit Sub
If dateRange.Rows.Count <> valueRange.Rows.Count Then
MsgBox "Date range and value range must have the SAME number of rows.", vbExclamation, TITLE
Exit Sub
End If
Set startCell = Application.InputBox("Select START date cell:", TITLE, Type:=8)
If startCell Is Nothing Then Exit Sub
Set endCell = Application.InputBox("Select END date cell:", TITLE, Type:=8)
If endCell Is Nothing Then Exit Sub
If Not IsDate(startCell.Value) Or Not IsDate(endCell.Value) Then
MsgBox "Start/End cell must contain valid dates.", vbExclamation, TITLE
Exit Sub
End If
startDate = CDate(startCell.Value)
endDate = CDate(endCell.Value)
If startDate > endDate Then
Dim tmp As Date
tmp = startDate: startDate = endDate: endDate = tmp
End If
For i = 1 To dateRange.Rows.Count
If IsDate(dateRange.Cells(i, 1).Value) Then
d = CDate(dateRange.Cells(i, 1).Value)
If d >= startDate And d <= endDate Then
v = valueRange.Cells(i, 1).Value
If IsNumeric(v) And Not IsEmpty(v) Then
If Not hasHit Then
maxV = CDbl(v): minV = CDbl(v)
hasHit = True
Else
If CDbl(v) > maxV Then maxV = CDbl(v)
If CDbl(v) < minV Then minV = CDbl(v)
End If
End If
End If
End If
Next i
If hasHit Then
MsgBox "Max value in range: " & maxV & vbCrLf & _
"Min value in range: " & minV, vbInformation, TITLE
Else
MsgBox "No rows matched the date range (or values were non-numeric).", vbExclamation, TITLE
End If
Exit Sub
FailFast:
MsgBox "Something went wrong: " & Err.Description, vbExclamation, TITLE
End Sub
2. Para ejecutar la macro, haga clic en el botón
en el editor de VBA (o pulse)F5). Siga las indicaciones para seleccionar los rangos de fechas y valores e introduzca la fecha de inicio y la fecha de fin. Tras hacerlo, el valor máximo y el valor mínimo correspondientes al intervalo de fechas especificado se mostrarán en un cuadro de diálogo.
Consejos:
- Asegúrese de que los rangos de fechas y valores seleccionados tengan el mismo número de filas y se correspondan directamente entre sí.
- Este enfoque resulta especialmente útil para procesar listas extensas o automatizar cálculos repetitivos de máximo y mínimo según criterios cambiantes.
- Si selecciona un rango vacío o no válido, o si la fecha introducida no tiene el formato correcto, es posible que el código no genere un resultado válido. Revise atentamente sus selecciones antes de ejecutarlo.
Otros métodos integrados de Excel: Utilice una tabla dinámica para filtrar y mostrar el valor máximo/mínimo por Rango de fechas
Si prefiere no utilizar fórmulas ni código, aprovechar la función tabla dinámica de Excel le ofrece un método interactivo y sin fórmulas para filtrar datos por fecha y mostrar valores resumen, como el máximo o el mínimo. Esta solución es ideal para usuarios que necesitan explorar datos, generar informes o ajustar fácilmente los criterios mediante una interfaz gráfica.
1. Seleccione su tabla (incluidas tanto las fechas como los valores), vaya a la pestaña Insertar y haga clic en Tabla dinámica.
2. En el cuadro de diálogo Crear tabla dinámica, elija dónde desea colocar la tabla dinámica y haga clic en Aceptar.
3. En el panel Campos de tabla dinámica, arrastre el campo Fecha al área Filas y el campo Valores (el correspondiente al valor del que desea hallar el máximo o mínimo) al área Valores. De forma predeterminada, mostrará Suma; haga clic en el campo de Valores, elija Configuración de campo de valores y cámbiela a Máx o Mín, según sea necesario.
4. Para filtrar por un rango de fechas específico, haga clic en la lista desplegable de las etiquetas de fila del campo Fecha, elija Filtros de fecha > Entre…y, a continuación, especifique su fecha de inicio y fecha de fin (por ejemplo,)2016/7/1 a 2016/12/1) y haga clic en Aceptar.
La tabla dinámica mostrará ahora el valor máximo o mínimo para cada fecha dentro de su rango limitado. Si solo necesita el valor más alto o más bajo del rango, puede aplicar un filtro adicional o revisar visualmente el resultado resumido.
Notas:
- Asegúrese de que todas las celdas de la columna Fecha contengan fechas reales (no texto). Los formatos mixtos pueden hacer que los filtros omitan filas.
- Si cambia los datos de origen, haga clic con el botón derecho en la tabla dinámica y elija Actualizar para actualizar los resultados.
- Según su diseño, Excel puede agrupar las fechas por mes, trimestre o año. Si es necesario, haz clic con el botón derecho en una fecha de la tabla dinámica y elige Desagrupar(o)Agrupar… para establecer el nivel deseado).
- Para conjuntos de datos muy grandes, colocar la tabla dinámica en una hoja de cálculo nueva mejora la legibilidad y el rendimiento.
Consejos:
- Agregue un segmentador de datospara el campo Fecha (Análisis de tabla dinámica >)Insertar segmentador de datos) y cambie los intervalos de forma interactiva.
- ¿Necesita obtener un único valor máximo o mínimo en todo el rango filtrado? Después de aplicar el filtro, ordene la columna de valores o agregue un segundo campo de valores y cámbielo a Máx/Mín.
- Combínelo con un gráfico dinámico para obtener un resumen visual que se actualice automáticamente al aplicar sus filtros.
Este método evita la introducción manual de fórmulas y ofrece una interacción dinámica, ideal para presentaciones o entornos con múltiples usuarios. Para resultados altamente personalizados o automatización por lotes en varias hojas, considere utilizar fórmulas o VBA.
Artículos relacionados:
- ¿Cómo encontrar la posición del primer o último número en una cadena de texto en Excel?
- ¿Cómo encontrar el primer o último viernes de cada mes en Excel?
- ¿Cómo usar BUSCARV para encontrar la primera, segunda o enésima coincidencia en Excel?
- ¿Cómo encontrar el valor que aparece con mayor frecuencia en un rango de Excel?
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