Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

Как извлечь все записи между двумя датами в Excel?

Author Sun Last modified

При работе с большими объемами данных со временными метками в Excel вам может часто требоваться извлечение или фильтрация всех записей, попадающих между двумя конкретными датами. Например, вы можете захотеть проанализировать транзакции в течение расчетного периода, проверить посещаемость за определенный месяц или просто изучить записи, сделанные в пределах пользовательского диапазона дат. Ручной поиск и копирование каждой соответствующей строки может быть как утомительным, так и подверженным ошибкам, особенно когда объем данных растет. Эффективное извлечение всех записей между двумя заданными датами не только экономит значительное время и усилия, но и снижает вероятность пропуска важных записей или возникновения ошибок при обработке данных.

A screenshot of data range in Excel for extracting records between two dates Arrow right A screenshot showing extracted records between two dates in Excel

Ниже вы найдете несколько практических методов для извлечения всех записей между двумя датами в Excel. Каждый подход имеет свои применимые сценарии и преимущества: от извлечения на основе формул (без необходимости добавления надстроек) до использования Kutools для Excel для большего удобства, а также VBA-кодов и встроенного фильтра Excel — предоставляя гибкие решения для разных потребностей и предпочтений пользователей.

Извлечение всех записей между двумя датами с помощью формул

Извлечение всех записей между двумя датами с помощью Kutools для Excel good idea3

Использование VBA для извлечения записей между двумя датами

Использование фильтра Excel для извлечения записей между двумя датами


Извлечение всех записей между двумя датами с помощью формул

Чтобы извлечь все записи между двумя датами в Excel с использованием формул, вы можете следовать этим шагам. Это решение особенно полезно, если вы хотите динамическое обновление: всякий раз, когда меняется исходный набор данных или условия дат, результаты автоматически обновляются. Однако, если вы менее знакомы с формулами массива, начальная настройка может показаться немного сложной. Если ваш набор данных очень большой, этот метод может замедлить вычислительную производительность.

1. Подготовьте новый лист, например, Лист2, где вы укажете границы дат и отобразите извлеченные записи. Введите желаемую начальную и конечную дату в ячейки A2 и B2 соответственно. Для ясности вы можете добавить заголовки в A1 и B1 (например, «Начальная дата» и «Конечная дата»).
A screenshot of the start and end date input cells in Excel

2. В ячейке C2 Листа2 введите следующую формулу, чтобы подсчитать, сколько строк в Листе1 имеют даты, попадающие в указанный диапазон:

=SUMPRODUCT((Sheet1!$A$2:$A$22>=A2)*(Sheet1!$A$2:$A$22<=B2))

После ввода формулы нажмите Enter. Это поможет вам понять, сколько записей соответствуют вашему условию фильтра, что позволит легко узнать, сколько результатов ожидать.
A screenshot of the formula used to count matching rows between two dates

Примечание: В этой формуле Лист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), чтобы она работала как формула массива. Затем используйте маркер заполнения, чтобы протянуть её вправо на столько столбцов, сколько есть данных, и вниз, чтобы отобразились все соответствующие строки. Продолжайте перетаскивать, пока не увидите пустые значения, что будет означать, что все соответствующие данные были извлечены.
A screenshot showing the extracted data using formulas

Советы:

  • Если вы получаете нули, это означает, что больше нет соответствующих записей для возврата. Просто прекратите дальнейшее перетаскивание.
  • Часть формулы INDEX(...) может быть адаптирована для извлечения других столбцов. Измените ссылочный столбец в части Лист1!A$2:A$22, если вы хотите вернуть другие поля.
  • Эта формула может быть расширена для работы с несколькими критериями или для извлечения целых строк (повторением формулы в каждом столбце).

4. Некоторые результаты дат могут появиться как 5-значные числа (последовательные номера дат Excel). Чтобы преобразовать их в читаемый формат даты, выберите соответствующие ячейки, перейдите на вкладку Главная , откройте выпадающее меню форматирования и выберите Краткая дата. Это сделает извлеченные данные более четкими и удобными для использования.
A screenshot of formatted dates

Меры предосторожности:

  • Убедитесь, что все записи дат в ваших исходных данных действительно в формате даты, а не сохранены как текст. В противном случае формула может не работать должным образом.
  • Настройте диапазоны массивов, если изменится размер ваших данных.
  • Если вы видите ошибки #ЧИСЛО! или #Н/Д, проверьте наличие пустых входных дат или несоответствий в ваших исходных данных.

Извлечение всех записей между двумя датами с помощью Kutools для Excel

Если вы предпочитаете более упрощенное и интерактивное решение, функция Выбрать определенные ячейки в Kutools для Excel может помочь вам извлечь целые строки, соответствующие вашему диапазону дат, всего несколькими щелчками мыши, минимизируя необходимость в формулах или ручных настройках. Это особенно подходит для пользователей, которые часто выполняют комплексные задачи фильтрации или выполняют пакетные операции на больших наборах данных, поскольку снижается вероятность ошибок формул и ускоряется рабочий процесс.

Kutools для Excel,оснащённый ИИ 🤖, предлагает более 300 удобных функций для упрощения ваших задач.

После установки Kutools для Excel следуйте инструкциям ниже: (Бесплатная загрузка Kutools для Excel прямо сейчас!)

1. Сначала выберите диапазон вашего набора данных, который вы хотите проанализировать и извлечь. Затем щелкните Kutools > Выбрать > Выбрать определенные ячейки на ленте Excel. Это вызывает диалоговое окно для продвинутого выбора.
A screenshot showing Kutools Select Specific Cells feature

2. В диалоговом окне Выбрать определенные ячейки:

  • Отметьте опцию "Вся строка", чтобы выбрать полные соответствующие строки.
  • Установите условие фильтра: выберите Больше чем и Меньше чем в выпадающих списках для вашего столбца дат.
  • Вручную введите ваши начальные и конечные даты в текстовые поля (убедитесь, что формат совпадает с вашими данными).
  • Убедитесь, что выбрана логика «И», чтобы оба условия применялись одновременно.
Смотрите снимок экрана:
A screenshot of the Select Specific Cells dialog with greater than and less than options

3. Нажмите OK. Kutools мгновенно выберет все строки, столбец дат которых попадает в ваш указанный диапазон. Затем нажмите Ctrl + C чтобы скопировать выбранные строки, перейдите в пустой лист или новое место и нажмите Ctrl + V чтобы вставить извлеченные результаты.
A screenshot showing extracted rows after using Kutools to select and copy records between two dates

Советы и меры предосторожности:

  • Подход с использованием 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. Чтобы запустить макрос, щелкните Run button (Запуск) кнопку или нажмите F5.

Затем следуйте инструкциям, чтобы завершить шаги:

  1. Выберите таблицу данных (включая заголовки)
    Когда появится первое окно ввода, выберите всю таблицу, включая строку заголовков. Щелкните OK.
  2. Выберите столбец дат (включая заголовок)
    Когда появится второе окно ввода, выберите только столбец дат, включая заголовок. Щелкните OK.
  3. Введите начальную и конечную даты
    Вам будет предложено ввести начальную дату (формат: гггг-мм-дд, например, 2025-06-01)
    Затем введите конечную дату (например, 2025-06-30)
    Щелкните OK после каждого.

Лист с именем FilteredRecords будет создан автоматически (если он еще не существует). Соответствующие строки (где дата находится между начальной и конечной датами) будут скопированы на этот лист. И любые новые соответствующие строки будут добавлены ниже существующих результатов каждый раз, когда вы запускаете макрос.

Устранение неполадок:

  • Если ничего не произошло после выполнения, проверьте выбранные диапазоны — недопустимые диапазоны или отмененные диалоги приведут к выходу из макроса.
  • Убедитесь, что записи в столбце дат являются истинными датами Excel; если они хранятся как текст, сначала преобразуйте их для точной фильтрации.

Анализ сценария: Это решение VBA особенно ценится для повторяющихся задач, продвинутых рабочих процессов или при совместном использовании полуавтоматического решения с неквалифицированными пользователями — просто назначьте кнопку для еще более легкой операции.


Другие встроенные методы Excel - Использование встроенного фильтра Excel

Для пользователей, предпочитающих простой, интерактивный подход без написания формул или кода, встроенный фильтр Excel предлагает быстрый способ просмотра и извлечения строк между двумя датами. Это идеально подходит для периодических задач, визуальной проверки или когда вам нужно работать непосредственно с интерфейсом рабочего листа. Однако он не предоставляет автоматические обновления, если ваши критерии дат или данные изменяются — вам нужно повторять шаги для каждого нового сеанса фильтрации.

Вот как им пользоваться:

  • Выберите диапазон данных, включая заголовки столбцов.
  • Перейдите на вкладку Данные на ленте, затем нажмите Фильтр. Маленькие стрелочки выпадающего меню появятся рядом с каждым заголовком.
  • Щелкните стрелку для вашего столбца дат и выберите Фильтры дат > Между...
  • В диалоговом окне введите желаемые начальную и конечную даты. Убедитесь, что формат совпадает с форматом дат в ваших данных.
  • Нажмите OK. Останутся видимыми только строки с датами в указанном диапазоне.
  • Выберите все видимые строки, нажмите Ctrl + C для копирования, перейдите в пустую область или другой лист и нажмите Ctrl + V для вставки отфильтрованных результатов.

Советы и меры предосторожности:

  • Этот метод лучше всего подходит для быстрой визуальной проверки или временного извлечения.
  • Если ваш столбец дат использует несовместимые форматы, исправьте их заранее, чтобы обеспечить точную работу фильтра.
  • Не забудьте очистить фильтр, когда закончите, чтобы снова показать весь набор данных.
  • Отфильтрованные строки скрыты, а не удалены — ваши исходные данные остаются нетронутыми.

Анализ сценария: Встроенный фильтр Excel наиболее подходит для таблиц умеренного размера и когда вам нужно мгновенно просмотреть или скопировать подмножества без сохранения формул или макросов.


Устранение неполадок и рекомендации по итогам:

  • Всегда убедитесь, что ваши ячейки дат форматированы одинаково по всему листу для правильной работы всех решений.
  • При использовании формул или VBA настройте ссылки на столбцы и диапазоны в соответствии с фактической структурой вашего листа, чтобы избежать ошибок индекса или ссылок.
  • Для работы с очень большими наборами данных Kutools или встроенная фильтрация обычно предлагают более быстрые результаты и реже превышают ограничения памяти/вычислений формул по сравнению с обширными формулами массива.
  • Если вы столкнулись с неожиданными пробелами или пропущенными записями в выводе, дважды проверьте, что ваши условия дат, входные диапазоны и форматы данных установлены должным образом.

Демо: Извлечение всех записей между двумя датами с помощью Kutools для Excel

 
Kutools для Excel: Более 300 удобных инструментов у вас под рукой! Наслаждайтесь постоянно бесплатными функциями ИИ! Скачать сейчас!

Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP по нескольким значениям | Многолистовой поиск | Распознавание нечетких соответствий ...
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ...
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгой и листами | Библиотека автотекста | Выбор даты | Объединить данные | Зашифровать/расшифровать ячейки | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр жирный/курсив/зачеркнутый...) ...
Топ15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ полезных формул (Расчет возраста на основе даты рождения, ...) |19 инструментов для вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое
Используйте Kutools на предпочитаемом вами языке — поддерживает Английский, Испанский, Немецкий, Французский, Китайский и более40 других языков!

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