Удаление строк до даты отсечения (Microsoft Excel)
У Барри есть большой рабочий лист, содержащий несколько тысяч строк данных.
Столбец B содержит дату, и ему нужно удалить все строки, в которых дата в столбце B раньше, чем конкретная дата отсечения. Барри задается вопросом, как это сделать с таким большим объемом данных.
Это довольно просто сделать, поскольку используемый подход зависит от того, как часто вам нужно это делать и как вы хотите работать со своими данными. Если вам все равно, в каком порядке находятся ваши данные, то самый простой метод — это то, что я называю методом «сортировки и удаления»:
-
Выберите ячейку B2. (Предполагается, что B2 — первая дата в ваших строках данных, потому что строка 1 содержит заголовки.)
-
Откройте вкладку «Данные» на ленте.
-
Щелкните инструмент Сортировать от старых к новым. Excel сортирует данные по датам в столбце B, причем самая старая дата находится в строке 2.
-
Выделите и удалите строки, содержащие даты до вашего отсечения.
Это отлично работает, если вам нужно выполнять эту задачу только время от времени, и если вы не возражаете против переупорядочивания строк в данных. Если переупорядочение представляет собой проблему, вы можете добавить столбец к своим данным и заполнить этот столбец значениями от 1 до того количества строк данных, которое у вас есть. Затем вы можете выполнить метод «сортировки и удаления», но затем обработать данные на основе значений в добавленном столбце.
Конечно, вы также можете использовать метод «фильтр и удаление», который оставит ваши данные в исходном порядке без необходимости во вспомогательном столбце:
-
Выберите ячейку B2. (Предполагается, что B2 — первая дата в ваших строках данных, потому что строка 1 содержит заголовки.)
-
Нажмите Ctrl + Shift + L. Excel применяет к вашим данным автофильтр. (Вы должны увидеть маленькие стрелки раскрывающегося списка рядом с заголовками в строке 1.)
-
Щелкните стрелку раскрывающегося списка рядом с заголовком «Дата» в ячейке B1. Excel отображает некоторые параметры сортировки и фильтрации.
-
Наведите указатель мыши на параметр «Фильтры даты». Excel отображает еще больше возможностей.
-
Выберите вариант «До». Excel отображает диалоговое окно «Пользовательский автофильтр».
-
В поле справа от «До» укажите дату на один день после даты окончания.
-
Щелкните ОК. Excel применяет фильтр, и вы можете видеть только те строки, которые соответствуют дате окончания или раньше.
-
Выберите все строки, но не строку 1. (Это потому, что строка 1 содержит ваши заголовки.)
-
Откройте вкладку «Главная» на ленте.
-
Щелкните инструмент Удалить. Excel удалит все выбранные строки.
-
Откройте вкладку «Данные» на ленте.
-
Щелкните инструмент «Фильтр», чтобы удалить автофильтр.
Если вам нужно часто выполнять задачу по удалению строк, то вы не сможете превзойти удобство использования макроса. В следующем макросе предполагается, что вы поместили дату окончания в ячейку 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.