¿Cómo encontrar el valor máximo o mínimo en un rango de fechas específico (entre dos fechas) en Excel?
En el análisis de datos diario, especialmente al trabajar con registros transaccionales o datos de series temporales, es posible que a menudo necesites identificar el valor más alto o más bajo que ocurre dentro de un período de tiempo específico. Por ejemplo, imagina que tienes una tabla como se muestra en la captura de pantalla a continuación, y quieres determinar el valor máximo o mínimo entre dos fechas, como del 01/07/2016 al 01/12/2016. Esta es una necesidad común al generar informes sobre períodos específicos, comparar el rendimiento mensual o hacer un seguimiento de los picos y valles en los datos. Este artículo te guiará a través de varias soluciones prácticas utilizando fórmulas de Excel, código VBA y funciones integradas, ayudándote a extraer rápidamente y con precisión el valor que necesitas.
➤ Encontrar el valor máximo o mínimo en un rango de fechas específico con fórmulas matriciales
➤ Código VBA: Automáticamente encuentra el valor máximo o mínimo en un rango de fechas específico
➤ Otros métodos integrados de Excel: Usa Tabla Dinámica para filtrar y mostrar máx/mín por rango de fechas
Encuentra el valor máximo o mínimo en un rango de fechas específico con fórmulas matriciales
Un enfoque sencillo es usar fórmulas matriciales en Excel, que te permiten calcular valores basados en varios criterios, como verificar si las fechas están dentro de tu rango especificado. Este método es adecuado para datos de tamaño moderado y para usuarios cómodos ingresando fórmulas.
Supongamos que tu hoja de cálculo lista las fechas en la columna A (A5:A17) y los valores correspondientes en la columna B (B5:B17), con las fechas de inicio y fin para el rango ingresadas en las celdas B1 y D1, respectivamente.
1. Selecciona una celda en blanco donde deseas mostrar el resultado (por ejemplo, E2).
Encontrar el valor máximo entre el 01/07/2016 y el 01/12/2016:
2. Ingresa la siguiente fórmula en la celda seleccionada. Después de editar, presiona Ctrl + Shift + Enter (no solo Enter), para que Excel la reconozca como una fórmula matricial:
=MAX(IF((A5:A17<=$D$1)*(A5:A17>=$B$1),B5:B17,""))
Esta fórmula verifica qué fechas caen entre tus fechas de inicio y fin, y solo considera los valores de las filas coincidentes para calcular el máximo.
Encontrar el valor mínimo entre el 01/07/2016 y el 01/12/2016:
3. Para encontrar el mínimo dentro del mismo rango de fechas, utiliza un enfoque similar. Ingresa la siguiente fórmula (y nuevamente, confirma con Ctrl + Shift + Enter):
=MIN(IF((A5:A17<=$D$1)*(A5:A17>=$B$1), B5:B17, ""))
Esta fórmula funciona de la misma manera, pero devuelve el valor mínimo que coincide con tus criterios de fecha.
Notas:
- En los ejemplos anteriores, A5:A17 es el rango que contiene tus fechas, $B$1 es la fecha de inicio, $D$1 es la fecha de fin y B5:B17 es el rango de valores que deseas evaluar. Ajusta estas referencias para que coincidan con tus datos reales.
- Asegúrate de que los dos rangos que refieras tengan la misma longitud; de lo contrario, la fórmula podría generar errores.
- Verifica que tus entradas de fecha estén formateadas como fechas, no como texto, o la fórmula podría no funcionar según lo previsto.
Consejos:
- Si estás trabajando con Office 365 o Excel 2021 y versiones posteriores, puedes usar las funciones MAXIFS y MINIFS para cálculos más simples basados en criterios.
- Si la fórmula devuelve un 0 o está en blanco inesperadamente, verifica que tu rango de fechas se superponga con las fechas disponibles en los datos y busca cualquier celda en blanco inadvertida.
Código VBA: Encuentra automáticamente el valor máximo o mínimo en un rango de fechas específico
Para los usuarios que manejan grandes conjuntos de datos, necesitan repetir esta tarea a menudo o buscan automatización en la generación de informes, una solución de macro VBA puede encontrar eficientemente el valor máximo o mínimo dentro de un rango de fechas elegido. Con VBA, puedes pedirle al usuario que seleccione los rangos relevantes y establezca las fechas cada vez, lo que lo hace ideal para aplicaciones dinámicas o integración avanzada de flujo de trabajo.
1. Ve a Desarrollador > Visual Basic. En la ventana del editor de VBA que aparece, haz clic en Insertar > Módulo, y luego copia y pega 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, haz clic en el botón en el editor de VBA (o presiona F5). Sigue las indicaciones para seleccionar los rangos de fecha y valores, e ingresar las fechas de inicio y fin. Los valores máximos y mínimos resultantes para tu intervalo de fechas especificado se mostrarán en un cuadro de diálogo.
Consejos:
- Asegúrate de que los rangos de fecha y valores seleccionados contengan el mismo número de filas y correspondan directamente entre sí.
- Este enfoque es especialmente útil para procesar listas extensas o automatizar cálculos repetitivos de máximo/mínimo basados en criterios cambiantes.
- Si se selecciona un rango vacío o no válido, o si la entrada de fecha no está formateada correctamente, el código puede no producir un resultado válido; verifica tus selecciones antes de ejecutar.
Otros métodos integrados de Excel: Usa Tabla Dinámica para filtrar y mostrar máx/mín por rango de fechas
Si prefieres no usar fórmulas o código, aprovechar la función Tabla Dinámica de Excel ofrece un método interactivo, libre de fórmulas, para filtrar datos por fecha y mostrar valores resumidos como máximo o mínimo. Esta solución es adecuada para usuarios que necesitan explorar datos, generar informes o ajustar fácilmente criterios usando una interfaz gráfica.
1. Selecciona tu tabla (incluyendo tanto las fechas como los valores), luego ve a la pestaña Insertar y haz clic en Tabla Dinámica.
2. En el cuadro de diálogo Crear Tabla Dinámica, elige dónde deseas colocar la Tabla Dinámica y haz clic en Aceptar.
3. En el panel Campos de la Tabla Dinámica, arrastra el campo Fecha al área Filas, y el campo Valores (el que deseas encontrar el máx/mín) al área Valores. Por defecto, mostrará Suma; haz clic en el campo en Valores, elige Configuración del Campo de Valor, y cambia a Máximo o Mínimo según sea necesario.
4. Para filtrar por un rango de fechas específico, haz clic en la lista desplegable en las etiquetas de fila para el campo Fecha, elige Filtros de Fecha > Entre…, luego especifica tus fechas de inicio y fin (por ejemplo, 01/07/2016 al 01/12/2016) y haz clic en Aceptar.
La Tabla Dinámica ahora mostrará el valor máximo o mínimo para cada fecha dentro de tu rango especificado. Si solo necesitas el valor más alto o más bajo en ese rango, puedes filtrar aún más o escanear visualmente el resultado resumido.
Notas:
- Asegúrate de que todas las celdas en la columna Fecha sean fechas reales (no texto). Los formatos mixtos pueden hacer que los filtros omitan filas.
- Si los datos de origen cambian, haz clic derecho en la Tabla Dinámica y elige Actualizar para actualizar los resultados.
- Dependiendo de tu diseño, Excel puede agrupar fechas por mes/trimestre/año. Si es necesario, haz clic derecho en una fecha en la Tabla Dinámica y elige Desagrupar (o Agrupar… para establecer un nivel deseado).
- Para conjuntos de datos muy grandes, colocar la Tabla Dinámica en una nueva hoja de cálculo puede mejorar la legibilidad y el rendimiento.
Consejos:
- Agrega un Segmentador para el campo Fecha (Analizar Tabla Dinámica > Insertar Segmentador) para cambiar rangos de forma interactiva.
- ¿Necesitas un único máx/mín en todo el rango filtrado? Después de filtrar, ordena la columna de Valores o agrega un segundo campo de Valores y cámbialo a Máximo/Mínimo.
- Combina con un Gráfico Dinámico para obtener un resumen visual que se actualice con tus filtros.
Este método evita la entrada manual de fórmulas y permite una interacción dinámica, ideal para presentaciones o escenarios multiusuario. Para salidas altamente personalizadas o automatización por lotes en muchas hojas, considera los enfoques de fórmula o VBA.
Artículos relacionados:
- ¿Cómo encontrar la posición del primer/ú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 vlookup para encontrar el primer, segundo o n-ésimo valor coincidente en Excel?
- ¿Cómo encontrar el valor con la frecuencia más alta en un rango en Excel?
Las mejores herramientas de productividad para Office
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.





- 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