У Барри есть большой рабочий лист, содержащий несколько тысяч строк данных.

Столбец B содержит дату, и ему нужно удалить все строки, в которых дата в столбце B раньше, чем конкретная дата отсечения. Барри задается вопросом, как это сделать с таким большим объемом данных.

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

  1. Выберите ячейку B2. (Предполагается, что B2 — первая дата в ваших строках данных, потому что строка 1 содержит заголовки.)

  2. Откройте вкладку «Данные» на ленте.

  3. Щелкните инструмент Сортировать от старых к новым. Excel сортирует данные по датам в столбце B, причем самая старая дата находится в строке 2.

  4. Выделите и удалите строки, содержащие даты до вашего отсечения.

Это отлично работает, если вам нужно выполнять эту задачу только время от времени, и если вы не возражаете против переупорядочивания строк в данных. Если переупорядочение представляет собой проблему, вы можете добавить столбец к своим данным и заполнить этот столбец значениями от 1 до того количества строк данных, которое у вас есть. Затем вы можете выполнить метод «сортировки и удаления», но затем обработать данные на основе значений в добавленном столбце.

Конечно, вы также можете использовать метод «фильтр и удаление», который оставит ваши данные в исходном порядке без необходимости во вспомогательном столбце:

  1. Выберите ячейку B2. (Предполагается, что B2 — первая дата в ваших строках данных, потому что строка 1 содержит заголовки.)

  2. Нажмите Ctrl + Shift + L. Excel применяет к вашим данным автофильтр. (Вы должны увидеть маленькие стрелки раскрывающегося списка рядом с заголовками в строке 1.)

  3. Щелкните стрелку раскрывающегося списка рядом с заголовком «Дата» в ячейке B1. Excel отображает некоторые параметры сортировки и фильтрации.

  4. Наведите указатель мыши на параметр «Фильтры даты». Excel отображает еще больше возможностей.

  5. Выберите вариант «До». Excel отображает диалоговое окно «Пользовательский автофильтр».

  6. В поле справа от «До» укажите дату на один день после даты окончания.

  7. Щелкните ОК. Excel применяет фильтр, и вы можете видеть только те строки, которые соответствуют дате окончания или раньше.

  8. Выберите все строки, но не строку 1. (Это потому, что строка 1 содержит ваши заголовки.)

  9. Откройте вкладку «Главная» на ленте.

  10. Щелкните инструмент Удалить. Excel удалит все выбранные строки.

  11. Откройте вкладку «Данные» на ленте.

  12. Щелкните инструмент «Фильтр», чтобы удалить автофильтр.

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

Sub DeleteRowsBeforeCutoff()

Dim LastRow As Integer     Dim J As Integer

Application.ScreenUpdating = False     LastRow = Cells(Rows.Count, 2).End(xlUp).Row     For J = LastRow To 1 Step -1         If Cells(J, 2) < [K1] Then             Cells(J, 2).EntireRow.Delete         End If     Next J     Application.ScreenUpdating = True End Sub

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (1566) применим к Microsoft Excel 2007, 2010, 2013 и 2016.