Как извлечь все записи между двумя датами в Excel?
При работе с большими объемами данных со временными метками в Excel вам может часто требоваться извлечение или фильтрация всех записей, попадающих между двумя конкретными датами. Например, вы можете захотеть проанализировать транзакции в течение расчетного периода, проверить посещаемость за определенный месяц или просто изучить записи, сделанные в пределах пользовательского диапазона дат. Ручной поиск и копирование каждой соответствующей строки может быть как утомительным, так и подверженным ошибкам, особенно когда объем данных растет. Эффективное извлечение всех записей между двумя заданными датами не только экономит значительное время и усилия, но и снижает вероятность пропуска важных записей или возникновения ошибок при обработке данных.
![]() | ![]() | ![]() |
Ниже вы найдете несколько практических методов для извлечения всех записей между двумя датами в Excel. Каждый подход имеет свои применимые сценарии и преимущества: от извлечения на основе формул (без необходимости добавления надстроек) до использования Kutools для Excel для большего удобства, а также VBA-кодов и встроенного фильтра Excel — предоставляя гибкие решения для разных потребностей и предпочтений пользователей.
Извлечение всех записей между двумя датами с помощью формул
Извлечение всех записей между двумя датами с помощью Kutools для Excel
Использование VBA для извлечения записей между двумя датами
Использование фильтра Excel для извлечения записей между двумя датами
Извлечение всех записей между двумя датами с помощью формул
Чтобы извлечь все записи между двумя датами в Excel с использованием формул, вы можете следовать этим шагам. Это решение особенно полезно, если вы хотите динамическое обновление: всякий раз, когда меняется исходный набор данных или условия дат, результаты автоматически обновляются. Однако, если вы менее знакомы с формулами массива, начальная настройка может показаться немного сложной. Если ваш набор данных очень большой, этот метод может замедлить вычислительную производительность.
1. Подготовьте новый лист, например, Лист2, где вы укажете границы дат и отобразите извлеченные записи. Введите желаемую начальную и конечную дату в ячейки A2 и B2 соответственно. Для ясности вы можете добавить заголовки в A1 и B1 (например, «Начальная дата» и «Конечная дата»).
2. В ячейке C2 Листа2 введите следующую формулу, чтобы подсчитать, сколько строк в Листе1 имеют даты, попадающие в указанный диапазон:
=SUMPRODUCT((Sheet1!$A$2:$A$22>=A2)*(Sheet1!$A$2:$A$22<=B2))
После ввода формулы нажмите Enter. Это поможет вам понять, сколько записей соответствуют вашему условию фильтра, что позволит легко узнать, сколько результатов ожидать.
Примечание: В этой формуле Лист1 относится к вашему оригинальному листу данных; $A$2:$A$22 — это столбец дат в ваших данных. Настройте эти ссылки по мере необходимости для ваших данных. A2 и B2 — это ваши ячейки начала и конца дат.
3. Чтобы отобразить соответствующие записи, выберите пустую ячейку, где вы хотите начать список (например, в Листе2, ячейка A5). Введите следующую формулу массива:
=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))))
После набора формулы нажмите Ctrl + Shift + Enter (вместо простого Enter), чтобы она работала как формула массива. Затем используйте маркер заполнения, чтобы протянуть её вправо на столько столбцов, сколько есть данных, и вниз, чтобы отобразились все соответствующие строки. Продолжайте перетаскивать, пока не увидите пустые значения, что будет означать, что все соответствующие данные были извлечены.
Советы:
- Если вы получаете нули, это означает, что больше нет соответствующих записей для возврата. Просто прекратите дальнейшее перетаскивание.
- Часть формулы INDEX(...) может быть адаптирована для извлечения других столбцов. Измените ссылочный столбец в части Лист1!A$2:A$22, если вы хотите вернуть другие поля.
- Эта формула может быть расширена для работы с несколькими критериями или для извлечения целых строк (повторением формулы в каждом столбце).
4. Некоторые результаты дат могут появиться как 5-значные числа (последовательные номера дат Excel). Чтобы преобразовать их в читаемый формат даты, выберите соответствующие ячейки, перейдите на вкладку Главная , откройте выпадающее меню форматирования и выберите Краткая дата. Это сделает извлеченные данные более четкими и удобными для использования.
Меры предосторожности:
- Убедитесь, что все записи дат в ваших исходных данных действительно в формате даты, а не сохранены как текст. В противном случае формула может не работать должным образом.
- Настройте диапазоны массивов, если изменится размер ваших данных.
- Если вы видите ошибки #ЧИСЛО! или #Н/Д, проверьте наличие пустых входных дат или несоответствий в ваших исходных данных.
Извлечение всех записей между двумя датами с помощью Kutools для Excel
Если вы предпочитаете более упрощенное и интерактивное решение, функция Выбрать определенные ячейки в Kutools для Excel может помочь вам извлечь целые строки, соответствующие вашему диапазону дат, всего несколькими щелчками мыши, минимизируя необходимость в формулах или ручных настройках. Это особенно подходит для пользователей, которые часто выполняют комплексные задачи фильтрации или выполняют пакетные операции на больших наборах данных, поскольку снижается вероятность ошибок формул и ускоряется рабочий процесс.
После установки Kutools для Excel следуйте инструкциям ниже: (Бесплатная загрузка Kutools для Excel прямо сейчас!)
1. Сначала выберите диапазон вашего набора данных, который вы хотите проанализировать и извлечь. Затем щелкните Kutools > Выбрать > Выбрать определенные ячейки на ленте Excel. Это вызывает диалоговое окно для продвинутого выбора.
2. В диалоговом окне Выбрать определенные ячейки:
- Отметьте опцию "Вся строка", чтобы выбрать полные соответствующие строки.
- Установите условие фильтра: выберите Больше чем и Меньше чем в выпадающих списках для вашего столбца дат.
- Вручную введите ваши начальные и конечные даты в текстовые поля (убедитесь, что формат совпадает с вашими данными).
- Убедитесь, что выбрана логика «И», чтобы оба условия применялись одновременно.

3. Нажмите OK. Kutools мгновенно выберет все строки, столбец дат которых попадает в ваш указанный диапазон. Затем нажмите Ctrl + C чтобы скопировать выбранные строки, перейдите в пустой лист или новое место и нажмите Ctrl + V чтобы вставить извлеченные результаты.
Советы и меры предосторожности:
- Подход с использованием Kutools не требует изменения ваших исходных данных или написания каких-либо формул.
- Если у вас есть несоответствия в формате дат, просмотрите результаты выборки перед копированием.
- Используйте эту функцию для повторяющихся или пакетных задач фильтрации — быстро повторяйте шаги для разных диапазонов дат.
- Если ваша версия Kutools не показывает функцию, как описано, обновитесь до последней версии для лучшей совместимости.
Анализ сценария: Этот метод идеально подходит для пользователей, управляющих списками с большим количеством столбцов или тех, кто должен многократно извлекать полные записи на основе изменяющихся ограничений дат.
VBA Код - Используйте макрос для автоматической фильтрации и извлечения всех строк между двумя указанными датами
Если ваш рабочий процесс часто включает извлечение данных между двумя датами и вы хотели бы полностью автоматизировать этот процесс, использование макроса VBA может быть умным выбором. С помощью VBA вы можете запросить пользователя выбрать столбец дат, ввести начальные и конечные даты и автоматически фильтровать и копировать соответствующие строки в новый лист. Этот подход экономит ручные усилия и уменьшает количество ошибок, но требует включения макросов и некоторого знакомства с редактором Visual Basic.
Вот как настроить такой макрос:
1. Щелкните Разработчик > Visual Basic, чтобы открыть редактор VBA. В новом окне Microsoft Visual Basic for Applications нажмите Вставка > Модуль, затем скопируйте и вставьте следующий код в Модуль:
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. Чтобы запустить макрос, щелкните (Запуск) кнопку или нажмите F5.
Затем следуйте инструкциям, чтобы завершить шаги:
- Выберите таблицу данных (включая заголовки) Когда появится первое окно ввода, выберите всю таблицу, включая строку заголовков. Щелкните OK.
- Выберите столбец дат (включая заголовок) Когда появится второе окно ввода, выберите только столбец дат, включая заголовок. Щелкните OK.
- Введите начальную и конечную даты Вам будет предложено ввести начальную дату (формат: гггг-мм-дд, например, 2025-06-01)Затем введите конечную дату (например, 2025-06-30)Щелкните OK после каждого.
Лист с именем FilteredRecords будет создан автоматически (если он еще не существует). Соответствующие строки (где дата находится между начальной и конечной датами) будут скопированы на этот лист. И любые новые соответствующие строки будут добавлены ниже существующих результатов каждый раз, когда вы запускаете макрос.
Устранение неполадок:
- Если ничего не произошло после выполнения, проверьте выбранные диапазоны — недопустимые диапазоны или отмененные диалоги приведут к выходу из макроса.
- Убедитесь, что записи в столбце дат являются истинными датами Excel; если они хранятся как текст, сначала преобразуйте их для точной фильтрации.
Анализ сценария: Это решение VBA особенно ценится для повторяющихся задач, продвинутых рабочих процессов или при совместном использовании полуавтоматического решения с неквалифицированными пользователями — просто назначьте кнопку для еще более легкой операции.
Другие встроенные методы Excel - Использование встроенного фильтра Excel
Для пользователей, предпочитающих простой, интерактивный подход без написания формул или кода, встроенный фильтр Excel предлагает быстрый способ просмотра и извлечения строк между двумя датами. Это идеально подходит для периодических задач, визуальной проверки или когда вам нужно работать непосредственно с интерфейсом рабочего листа. Однако он не предоставляет автоматические обновления, если ваши критерии дат или данные изменяются — вам нужно повторять шаги для каждого нового сеанса фильтрации.
Вот как им пользоваться:
- Выберите диапазон данных, включая заголовки столбцов.
- Перейдите на вкладку Данные на ленте, затем нажмите Фильтр. Маленькие стрелочки выпадающего меню появятся рядом с каждым заголовком.
- Щелкните стрелку для вашего столбца дат и выберите Фильтры дат > Между...
- В диалоговом окне введите желаемые начальную и конечную даты. Убедитесь, что формат совпадает с форматом дат в ваших данных.
- Нажмите OK. Останутся видимыми только строки с датами в указанном диапазоне.
- Выберите все видимые строки, нажмите Ctrl + C для копирования, перейдите в пустую область или другой лист и нажмите Ctrl + V для вставки отфильтрованных результатов.
Советы и меры предосторожности:
- Этот метод лучше всего подходит для быстрой визуальной проверки или временного извлечения.
- Если ваш столбец дат использует несовместимые форматы, исправьте их заранее, чтобы обеспечить точную работу фильтра.
- Не забудьте очистить фильтр, когда закончите, чтобы снова показать весь набор данных.
- Отфильтрованные строки скрыты, а не удалены — ваши исходные данные остаются нетронутыми.
Анализ сценария: Встроенный фильтр Excel наиболее подходит для таблиц умеренного размера и когда вам нужно мгновенно просмотреть или скопировать подмножества без сохранения формул или макросов.
Устранение неполадок и рекомендации по итогам:
- Всегда убедитесь, что ваши ячейки дат форматированы одинаково по всему листу для правильной работы всех решений.
- При использовании формул или VBA настройте ссылки на столбцы и диапазоны в соответствии с фактической структурой вашего листа, чтобы избежать ошибок индекса или ссылок.
- Для работы с очень большими наборами данных Kutools или встроенная фильтрация обычно предлагают более быстрые результаты и реже превышают ограничения памяти/вычислений формул по сравнению с обширными формулами массива.
- Если вы столкнулись с неожиданными пробелами или пропущенными записями в выводе, дважды проверьте, что ваши условия дат, входные диапазоны и форматы данных установлены должным образом.
Демо: Извлечение всех записей между двумя датами с помощью Kutools для Excel
Лучшие инструменты для повышения продуктивности в Office
Повысьте свои навыки работы в Excel с помощью Kutools для Excel и ощутите эффективность на новом уровне. Kutools для Excel предлагает более300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы выбрать функцию, которая вам нужнее всего...
Office Tab добавляет вкладки в Office и делает вашу работу намного проще
- Включите режим вкладок для редактирования и чтения в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна вместо новых отдельных окон.
- Увеличьте свою продуктивность на50% и уменьшите количество щелчков мышью на сотни ежедневно!
Все надстройки Kutools. Один установщик
Пакет Kutools for Office включает надстройки для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro — идеально для команд, работающих в разных приложениях Office.





- Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
- Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
- Совместная работа — максимальная эффективность между приложениями Office
- 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
- Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек