¿Cómo extraer todos los registros entre dos fechas en Excel?
Al trabajar con grandes cantidades de datos con marcas de tiempo en Excel, a menudo es necesario extraer o filtrar todos los registros que se encuentran entre dos fechas específicas. Por ejemplo, puede que desee analizar transacciones dentro de un período de facturación, revisar la asistencia para un mes particular o simplemente examinar entradas registradas dentro de un rango de fechas personalizado. Buscar y copiar manualmente cada fila relevante puede ser tedioso y propenso a errores, especialmente cuando su conjunto de datos crece en volumen. Extraer eficientemente todos los registros entre dos fechas dadas no solo le ahorra tiempo y esfuerzo significativos, sino que también reduce la probabilidad de omitir entradas importantes o introducir errores durante el manejo de los datos.
![]() | ![]() | ![]() |
A continuación, encontrará varios métodos prácticos para extraer todos los registros entre dos fechas en Excel. Cada enfoque tiene sus propios escenarios aplicables y ventajas, desde extracción basada en fórmulas (sin complementos necesarios), hasta usar Kutools para Excel para mayor comodidad, pasando por código VBA y el filtro integrado de Excel, proporcionando soluciones flexibles para diferentes necesidades y preferencias de usuario.
Extraer todos los registros entre dos fechas mediante fórmulas
Extraer todos los registros entre dos fechas mediante Kutools para Excel
Usar VBA para extraer registros entre dos fechas
Usar el filtro de Excel para extraer registros entre dos fechas
Extraer todos los registros entre dos fechas mediante fórmulas
Para extraer todos los registros entre dos fechas en Excel usando fórmulas, puede seguir estos pasos. Esta solución es especialmente útil cuando desea actualizaciones dinámicas: siempre que cambie el conjunto de datos original o las condiciones de fecha, los resultados se actualizan automáticamente. Sin embargo, si no está muy familiarizado con las fórmulas de matriz, la configuración inicial puede parecer un poco compleja. Si su conjunto de datos es muy grande, este método puede causar un rendimiento más lento en los cálculos.
1. Prepare una nueva hoja de trabajo, por ejemplo, Hoja2, donde especificará los límites de fecha y mostrará los registros extraídos. Ingrese la fecha de inicio y la fecha de fin deseadas en las celdas A2 y B2, respectivamente. Para mayor claridad, puede agregar encabezados en A1 y B1 (como "Fecha de inicio" y "Fecha de fin").
2. En la celda C2 de Hoja2, ingrese la siguiente fórmula para contar cuántas filas en Hoja1 tienen fechas que caen dentro del rango especificado:
=SUMPRODUCT((Sheet1!$A$2:$A$22>=A2)*(Sheet1!$A$2:$A$22<=B2))
Después de ingresar la fórmula, presione Enter. Esto le ayuda a entender cuántas entradas coinciden con su condición de filtro, facilitando saber cuántos resultados esperar.
Nota: En esta fórmula, Hoja1 se refiere a su hoja de datos original; $A$2:$A$22 es la columna de fecha en sus datos. Ajuste estas referencias según sea necesario para sus datos. A2 y B2 son sus celdas de fecha de inicio y fin.
3. Para mostrar los registros coincidentes, seleccione una celda en blanco donde desea que comience la lista extraída (por ejemplo, en Hoja2, celda A5). Ingrese la siguiente fórmula de matriz:
=IF(ROWS(A$5:A5)>$C$2,"",INDEX(Sheet1!A$2:A$22,SMALL(IF((Sheet1!$A$2:$A$22>=$A$2)*(Sheet1!$A$2:$A$22<=$B$2),ROW(Sheet1!A$2:A$22)-ROW(Sheet1!$A$2)+1),ROWS(A$5:A5))))
Después de escribir la fórmula, presione Ctrl + Shift + Enter (en lugar de solo Enter) para que funcione como una fórmula de matriz. Luego use el controlador de relleno para arrastrarla hacia la derecha a través de tantas columnas como tenga datos, y luego hacia abajo para que se muestren todas las filas coincidentes. Continúe arrastrando hasta que vea espacios en blanco, lo que significa que se han extraído todos los datos coincidentes.
Consejos:
- Si obtiene ceros, significa que no hay más registros coincidentes para devolver. Simplemente deje de arrastrar más.
- La parte INDEX(...) de la fórmula se puede adaptar para extraer otras columnas. Cambie la columna referenciada en la parte Hoja1!A$2:A$22 si desea devolver otros campos.
- Esta fórmula se puede expandir para trabajar con múltiples criterios o para extraer filas completas (repitiendo la fórmula en cada columna).
4. Algunos resultados de fecha pueden aparecer como números de 5 dígitos (números de fecha serial de Excel). Para convertirlos a un formato de fecha legible, seleccione las celdas correspondientes, vaya a la pestaña Inicio , abra el menú desplegable de formato y elija Fecha corta. Esto hará que los datos extraídos sean más claros y útiles.
Precauciones:
- Asegúrese de que todas las entradas de fecha en sus datos originales estén realmente en formato de fecha, no almacenadas como texto. De lo contrario, la fórmula puede no funcionar como se espera.
- Ajuste los rangos de matriz si cambia el tamaño de sus datos.
- Si ve errores #¡NUM! o #N/A, verifique si hay fechas de entrada en blanco o inconsistencias en sus datos fuente.
Extraer todos los registros entre dos fechas mediante Kutools para Excel
Si prefiere una solución más simplificada e interactiva, la función Seleccionar celdas específicas en Kutools para Excel puede ayudarle a extraer filas completas que coincidan con su rango de fechas con solo unos pocos clics, minimizando la necesidad de fórmulas o configuraciones manuales. Esto es particularmente adecuado para usuarios que a menudo manejan tareas de filtrado complejas o realizan operaciones por lotes en grandes conjuntos de datos, ya que reduce la posibilidad de errores en las fórmulas y acelera el flujo de trabajo.
Después de instalar Kutools para Excel, siga los pasos a continuación: (¡Descarga gratuita de Kutools para Excel ahora!)
1. Primero, seleccione el rango de su conjunto de datos que desea analizar y extraer. Luego, haga clic en Kutools > Seleccionar > Seleccionar celdas específicas desde la cinta de Excel. Esto abre una ventana de diálogo para selección avanzada.
2. En el cuadro de diálogo Seleccionar celdas específicas:
- Marque la opción "Fila completa" para seleccionar filas completas coincidentes.
- Establezca la condición de filtro: elija Mayor que y Menor que en las listas desplegables para su columna de fecha.
- Ingrese manualmente sus fechas de inicio y fin en los cuadros de texto (asegúrese de que el formato coincida con sus datos).
- Asegúrese de elegir la lógica “Y” para que ambas condiciones se apliquen simultáneamente.

3. Haga clic en Aceptar. Kutools seleccionará instantáneamente todas las filas cuya columna de fecha caiga dentro de su rango especificado. Luego, presione Ctrl + C para copiar las filas seleccionadas, vaya a una hoja en blanco o a una nueva ubicación y presione Ctrl + V para pegar los resultados extraídos.
Consejos y precauciones:
- El enfoque de Kutools no requiere cambiar sus datos originales ni escribir ninguna fórmula.
- Si tiene inconsistencias en el formato de fecha, revise los resultados de la selección antes de copiar.
- Use la función para trabajos de filtrado repetidos o por lotes—repetir rápidamente los pasos para diferentes rangos de fechas.
- Si su versión de Kutools no muestra una característica como se describe, actualice a la última versión para obtener la mejor compatibilidad.
Análisis de escenario: Este método es ideal para usuarios que gestionan listas con muchas columnas o para aquellos que necesitan extraer repetidamente registros completos basados en límites de fecha cambiantes.
Código VBA - Use una macro para filtrar y extraer automáticamente todas las filas entre dos fechas especificadas
Si su flujo de trabajo a menudo incluye extraer datos entre dos fechas y desea automatizar completamente el proceso, usar una macro VBA puede ser una elección inteligente. Con VBA, puede solicitar a los usuarios que seleccionen la columna de fecha, ingresen fechas de inicio y fin, y filtren y copien automáticamente las filas coincidentes en una nueva hoja. Este enfoque ahorra esfuerzo manual y reduce errores, pero requiere habilitar macros y cierta familiaridad con el editor de Visual Basic.
Aquí se explica cómo configurar dicha macro:
1. Haga clic en Desarrollador > Visual Basic para abrir el editor de VBA. En la nueva ventana Microsoft Visual Basic para Aplicaciones, haga clic en Insertar > Módulo, luego copie y pegue el siguiente código en el Módulo:
Sub ExtractRowsBetweenDates_Final()
'Updated by Extendoffice
Dim wsSrc As Worksheet
Dim wsDest As Worksheet
Dim rngTable As Range
Dim colDate As Range
Dim StartDate As Date
Dim EndDate As Date
Dim i As Long
Dim destRow As Long
Dim dateColIndex As Long
Dim cellDate As Variant
Set wsSrc = ActiveSheet
Set rngTable = Application.InputBox("Select the data table (including headers):", "KutoolsforExcel", Type:=8)
If rngTable Is Nothing Then Exit Sub
Set colDate = Application.InputBox("Select the date column (including header):", "KutoolsforExcel", Type:=8)
If colDate Is Nothing Then Exit Sub
On Error GoTo DateError
StartDate = CDate(Application.InputBox("Enter the start date (yyyy-mm-dd):", "KutoolsforExcel", "", Type:=2))
EndDate = CDate(Application.InputBox("Enter the end date (yyyy-mm-dd):", "KutoolsforExcel", "", Type:=2))
On Error GoTo 0
On Error Resume Next
Set wsDest = Worksheets("FilteredRecords")
On Error GoTo 0
If wsDest Is Nothing Then
Set wsDest = Worksheets.Add
wsDest.Name = "FilteredRecords"
rngTable.Rows(1).Copy
wsDest.Cells(1, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
wsDest.Cells(1, 1).PasteSpecial Paste:=xlPasteFormats
End If
destRow = wsDest.Cells(wsDest.Rows.Count, 1).End(xlUp).Row + 1
dateColIndex = colDate.Column - rngTable.Columns(1).Column + 1
For i = 2 To rngTable.Rows.Count
cellDate = rngTable.Cells(i, dateColIndex).Value
If IsDate(cellDate) Then
If cellDate >= StartDate And cellDate <= EndDate Then
rngTable.Rows(i).Copy
wsDest.Cells(destRow, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
wsDest.Cells(destRow, 1).PasteSpecial Paste:=xlPasteFormats
destRow = destRow + 1
End If
End If
Next i
Application.CutCopyMode = False
wsDest.Columns.AutoFit
MsgBox "Filtered results have been added to '" & wsDest.Name & "'.", vbInformation
Exit Sub
DateError:
MsgBox "Invalid date format. Please enter dates as yyyy-mm-dd.", vbExclamation
End Sub
2. Para ejecutar la macro, haga clic en el botón (Ejecutar) o presione F5.
Luego siga las indicaciones para completar los pasos:
- Seleccione la tabla de datos (incluidos los encabezados) Cuando aparezca el primer cuadro de entrada, seleccione toda la tabla, incluida la fila de encabezado. Haga clic en Aceptar.
- Seleccione la columna de fecha (incluyendo el encabezado) Cuando aparezca el segundo cuadro de entrada, seleccione solo la columna de fecha, incluido el encabezado. Haga clic en Aceptar.
- Ingrese las fechas de inicio y fin Se le pedirá que ingrese la fecha de inicio (formato: aaaa-mm-dd, por ejemplo, 2025-06-01)Luego ingrese la fecha de finalización (por ejemplo, 2025-06-30)Haga clic en Aceptar después de cada una.
Una hoja de trabajo llamada RegistrosFiltrados se creará automáticamente (si aún no existe). Las filas coincidentes (donde la fecha cae entre las fechas de inicio y fin) se copiarán en esa hoja. Y cualquier nueva fila coincidente se agregará debajo de los resultados existentes cada vez que ejecute la macro.
Solución de problemas:
- Si no ocurre nada después de ejecutar, verifique sus rangos seleccionados: rangos inválidos o diálogos cancelados harán que la macro termine.
- Asegúrese de que las entradas en su columna de fecha sean verdaderas fechas de Excel; si están almacenadas como texto, conviértalas primero para filtrar con precisión.
Análisis de escenario: Esta solución VBA es particularmente valiosa para tareas repetitivas, flujos de trabajo avanzados o al compartir una solución semi-automatizada con usuarios no técnicos: simplemente asigne un botón para una operación aún más fácil.
Otros métodos integrados de Excel - Usar la función Filtro integrada de Excel
Para usuarios que prefieren un enfoque simple e interactivo sin escribir fórmulas o código, la función Filtro integrada de Excel ofrece una forma rápida de ver y extraer filas entre dos fechas. Esto es ideal para tareas ocasionales, verificaciones visuales o cuando necesita trabajar directamente con la interfaz de la hoja de trabajo. Sin embargo, no proporciona actualizaciones automáticas si cambian sus criterios de fecha o datos; necesita repetir los pasos para cada nueva sesión de filtro.
Aquí se explica cómo usarlo:
- Seleccione su rango de datos, asegurándose de que los encabezados de columna estén incluidos.
- Vaya a la pestaña Datos en la cinta, luego haga clic en Filtro. Pequeñas flechas desplegables aparecerán junto a cada encabezado.
- Haga clic en la flecha para su columna de fecha y elija Filtros de fecha > Entre....
- En el cuadro de diálogo, ingrese sus fechas de inicio y fin deseadas. Asegúrese de que el formato coincida con el formato de fecha de sus datos.
- Haga clic en Aceptar. Solo las filas con fechas en su rango especificado permanecerán visibles.
- Seleccione todas las filas visibles, presione Ctrl + C para copiar, vaya a un área en blanco u otra hoja y presione Ctrl + V para pegar los resultados filtrados.
Consejos y precauciones:
- Este método es mejor para inspecciones rápidas y visuales o extracciones ad-hoc.
- Si su columna de fecha usa formatos inconsistentes, corrija estos antes para asegurarse de que el filtro funcione con precisión.
- Recuerde borrar el filtro cuando haya terminado para revelar nuevamente el conjunto completo de datos.
- Las filas filtradas están ocultas, no eliminadas: sus datos originales permanecen intactos.
Análisis de escenario: El filtro integrado de Excel es más adecuado para tablas de tamaño moderado y cuando necesita previsualizar o copiar subconjuntos instantáneamente sin guardar fórmulas o macros.
Solución de problemas y sugerencias de resumen:
- Confirme siempre que sus celdas de fecha estén formateadas consistentemente en toda la hoja de trabajo para que todas las soluciones funcionen correctamente.
- Al usar fórmulas o VBA, ajuste las referencias de columna y rango para que coincidan con la estructura real de su hoja para evitar errores de índice o referencia.
- Para el rendimiento en conjuntos de datos muy grandes, Kutools o el filtrado integrado generalmente ofrecen resultados más rápidos y es menos probable que excedan los límites de memoria/cálculo de fórmulas en comparación con extensas fórmulas de matriz.
- Si encuentra espacios en blanco inesperados o registros faltantes en la salida, verifique nuevamente que sus condiciones de fecha, rangos de entrada y formatos de datos estén configurados según lo previsto.
Demostración: Extraer todos los registros entre dos fechas mediante Kutools para Excel
Las mejores herramientas de productividad para Office
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!