Как извлечь все записи между двумя заданными датами в Excel?
При работе с большим объёмом временных меток в Excel вам нередко приходится извлекать или фильтровать записи, попадающие в интервал между двумя конкретными датами. Например, вы можете захотеть проанализировать транзакции за расчётный период, проверить посещаемость за определённый месяц или просто изучить записи, сделанные в течение заданного диапазона дат. Ручной поиск и копирование каждой подходящей строки — утомительный и ошибкоопасный процесс, особенно по мере роста объёма данных. Эффективное извлечение всех записей между двумя указанными датами не только существенно экономит время и усилия, но и минимизирует риск пропустить важные данные или допустить ошибки при обработке информации.
![]() | ![]() | ![]() |
Ниже представлены несколько практичных способов извлечения всех записей между двумя датами в Excel. Каждый метод идеально подходит для определённых ситуаций и имеет свои преимущества: от использования формул (без надстроек) и встроенного фильтра Excel до применения Kutools для Excel ради удобства и даже написания кода на VBA — обеспечивая гибкие решения под любые задачи и предпочтения пользователей.
Извлечение всех записей между двумя датами с помощью формул
Извлечение всех записей между двумя датами с помощью 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(…) можно адаптировать для извлечения данных из других столбцов. Просто измените ссылку на столбец в части Sheet1!A$2:A$22, чтобы получить нужные поля.
- Эту формулу можно расширить для работы с несколькими критериями или для извлечения всей строки (путём повторения формулы в каждом столбце).
4. Некоторые даты могут отображаться как пятизначные числа (серийные номера дат Excel). Чтобы преобразовать их в читаемый формат даты, выделите нужные ячейки, перейдите на вкладку Главная, откройте выпадающий список форматов и выберите Краткая дата. Так ваши данные станут понятнее и удобнее в работе!
Меры предосторожности:
- Убедитесь, что все даты в исходных данных действительно указаны в формате «Формат даты», а не сохранены как текст — иначе формула может работать некорректно.
- При изменении объёма данных обязательно скорректируйте диапазоны массивов.
- Если вы видите ошибки #ЧИСЛО! или #Н/Д, проверьте наличие пустых дат во входных данных или несогласованности в ваших исходных данных.
Извлечение всех записей между двумя датами с помощью Kutools для Excel
Если вы предпочитаете более простое и интерактивное решение, функция Выбрать определенные ячейки в Kutools для Excel поможет извлекать всю строку, соответствующую вашему диапазону дат, всего за несколько щелчков мышью — без необходимости использовать формулы или выполнять ручную настройку. Это идеальный выбор для пользователей, которые часто сталкиваются со сложными задачами фильтрации или пакетной обработкой больших наборов данных: функция снижает риск ошибок в формулах и значительно ускоряет рабочий процесс.
После установки Kutools для Excel следуйте инструкциям ниже:(Бесплатно скачать Kutools для Excel прямо сейчас!)
1. Сначала выделите диапазон данных, который нужно проанализировать и из которого требуется извлечь информацию. Затем на ленте Excel нажмите Kutools > Выделить > Выбрать определенные ячейки. Откроется диалоговое окно расширенного выделения.
2. В диалоговом окне Выбрать определенные ячейки:
- Установите флажок «Вся строка», чтобы выбрать строки, полностью соответствующие условию.
- Задайте условие фильтрации: выберите Больше и Меньше в раскрывающемся списке для столбца с датами.
- Вручную введите начальную и конечную даты в текстовое поле (убедитесь, что формат совпадает с данными).
- Убедитесь, что выбрана логика «И», чтобы оба условия применялись одновременно.
3. Нажмите кнопку ОК. Kutools немедленно выделит все строки, в которых дата попадает в указанный вами диапазон. Затем нажмите сочетание клавиш Ctrl + C, чтобы скопировать выделенные строки, перейдите на новый лист или в другое место и нажмите Ctrl + V, чтобы вставить полученные результаты.
Советы и предостережения:
- Подход с использованием Kutools не требует ни изменения исходных данных, ни написания формул.
- Если формат даты несогласован, обязательно предварительно просмотрите результаты выделения перед копированием.
- Используйте эту функцию для повторяющихся или пакетных задач фильтрации — быстро применяя одни и те же шаги к разным диапазонам дат.
- Если описанная функция отсутствует в вашей версии Kutools, обновитесь до последней версии для обеспечения наилучшей совместимости.
Анализ сценариев: Этот метод идеально подходит пользователям, работающим со списками, содержащими множество столбцов, а также тем, кому регулярно нужно извлекать полные записи на основе меняющихся временных границ.
Код VBA — используйте макрос для автоматической фильтрации и извлечения всех строк между двумя Определенная дата
Если в вашем рабочем процессе часто возникает необходимость извлекать данные между двумя датами и вы стремитесь полностью автоматизировать эту задачу, макрос VBA станет идеальным решением. С его помощью можно предложить пользователю выбрать столбец с датами, указать начальную и конечную даты, а затем автоматически отфильтровать и скопировать соответствующие строки на новый лист. Такой подход не только экономит время, но и минимизирует ошибки — правда, требует включения макросов и базового знакомства с редактором Visual Basic.
Вот как настроить такой макрос:
1. Нажмите Разработчик > Visual Basic, чтобы открыть редактор VBA. В новом окне Microsoft Visual Basic для приложений выберите Вставка > Модуль, затем скопируйте и вставьте приведённый ниже код в модуль:
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.
Затем следуйте инструкциям для завершения настройки:
- Выделите таблицу данных (включая заголовки)Когда появится первое диалоговое окно, выделите всю таблицу, включая строку заголовков, и нажмите ОК.
- Select the date column (including header)Когда появится второе диалоговое окно, выделите только столбец с датами, включая заголовок, и нажмите ОК.
- Введите начальную и Конечная датаВам будет предложено указать Дата начала (формат: гггг-мм-дд, например, 2025-06-01)Затем введите Конечная дата (например, 2025-06-30)Нажмите ОКпосле каждого ввода.
Автоматически создаётся лист с именем FilteredRecords (если он ещё не существует). Соответствующие строки, в которых дата находится между начальной и конечной, копируются на этот лист. При каждом последующем запуске макроса новые совпадающие строки добавляются под уже существующими результатами.
Устранение неполадок:
- Если после запуска ничего не происходит, проверьте параметр «Выберите диапазон»: недопустимые диапазоны или отменённые диалоговые окна приведут к завершению макроса.
- Убедитесь, что записи в столбце с датами являются настоящими датами Excel; если они сохранены как текст, сначала преобразуйте их — это обеспечит точную фильтрацию.
Анализ сценариев: Это решение на основе VBA особенно ценно при выполнении повторяющихся задач, в сложных рабочих процессах или при передаче полуавтоматизированного решения нетехническим пользователям. Для ещё большего удобства макрос можно назначить на кнопку.
Другие встроенные методы Excel — используйте встроенную функцию фильтрации Excel
Пользователям, которые ценят простоту и интерактивность без необходимости писать формулы или код, встроенная функция фильтрации Excel предоставляет быстрый способ просмотра и извлечения строк между двумя датами. Это идеальное решение для разовых задач, визуальной проверки данных или работы непосредственно с интерфейсом листа. Однако при изменении дат или самих данных автоматическое обновление не выполняется — все шаги фильтрации придётся повторять заново при каждом новом сеансе.
Вот как её использовать:
- Выделите диапазон данных, обязательно включив заголовки столбцов.
- Перейдите на вкладку Данные на ленте, затем нажмите Фильтр. Рядом с каждым заголовком появятся небольшие стрелки раскрывающегося списка.
- Нажмите стрелку в столбце с датами и выберите Фильтры по дате > Между….
- В диалоговом окне укажите желаемые начальную и конечную даты. Убедитесь, что их формат совпадает с форматом дат в ваших данных.
- Нажмите ОК. Останутся видимыми только строки с датами в указанном ограниченном диапазоне.
- Выделите все видимые строки, нажмите Ctrl + C, чтобы скопировать, перейдите в пустую область или на другой лист и нажмите Ctrl + V, чтобы вставить отфильтрованные результаты.
Советы и меры предосторожности:
- Этот метод идеально подходит для быстрой визуальной проверки или разовой выборки данных.
- Если в столбце с датами используются несогласованные форматы, заранее приведите их к единому виду, чтобы фильтр работал корректно.
- Не забудьте отключить фильтр после завершения работы, чтобы восстановить отображение всего набора данных.
- Отфильтрованные строки скрыты, а не удалены — исходные данные остаются нетронутыми.
Анализ сценариев: Встроенный фильтр Excel идеально подходит для таблиц среднего размера и ситуаций, когда нужно мгновенно просмотреть или скопировать подмножества данных без сохранения формул или макросов.
Устранение неполадок и рекомендации по итогам:
- Всегда проверяйте, чтобы ячейки с датами имели единый формат по всему листу — это гарантирует корректную работу всех функций.
- При использовании формул или VBA обязательно адаптируйте ссылки на столбцы и диапазоны под реальную структуру вашего листа, чтобы избежать ошибок индексации и некорректных ссылок.
- Для очень больших наборов данных Kutools или встроенный фильтр Excel обычно обеспечивают более высокую производительность и реже достигают пределов памяти или вычислительных возможностей по сравнению с объёмными формулами массивов.
- Если в результатах появляются неожиданные пустые ячейки или отсутствующие записи, дважды проверьте корректность заданных условий дат, входного диапазона и форматов данных.
Демонстрация: извлечение всех записей между двумя датами с помощью 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-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек


