Я знаю 2 способа, позволяющих удалить определённые строки в Эксель (Excel).
1 способ - с помощью фильтра.
2 способ - с помощью VBA.
Расскажу о каждом способе подробно.
<hr />
Если это делать с помощью фильтра, то порядок действий такой:
1) Отбираем нужные строки.
2) Удаляем их.
3) Убираем фильтр.
В результате в таблице останется только то, что нужно.
**
Вот пример:
В таблице содержаться сведения о товарах и странах-производител<wbr />ях, нужно оставить только импортные товары (то есть удалить строки, где содержится "Россия").
1) Так как нас интересуют строки с определённым значением, то можно поставить фильтр так:
Щёлкнуть по любой ячейке с надписью "Россия" правой кнопкой мыши, а затем в контекстном меню выбрать пункт "Фильтр по значению выделенной ячейки".
2) В итоге останутся видимыми только те строки, которые требуется удалить.
Выделяем все строки и щёлкаем по выделенному правой кнопкой мыши, в контекстном меню выбираем "Удалить строки".
3) Строки удалятся, и таблица будет пустой (так как там пока стоит фильтр).
4) Снимаем фильтр с помощью кнопки на панели инструментов "Сортировка и фильтр".
Теперь можно убедиться, что в таблице остались строчки с только импортными товарами.
**
Другой пример:
Нужно оставить только фрукты, стоящие > 100 рублей.
Здесь фильтр по значению ячейки уже не подойдёт, поэтому поступаем по-другому:
1) Щёлкаем левой кнопкой мыши по любой ячейке столбца с ценой и вызываем фильтр - с помощью копки "Фильтр" на вкладке "Данные" или с помощью копки "Сортировка и фильтр" на вкладке "Главная".
2) Теперь щёлкаем по специальной стрелочке на столбце с ценой, и выбираем "Числовые фильтры" -> "Меньше".
3) В появившемся окне вводим 100 и нажимаем на "OK".
4) Останутся строки с ценой < 100.
5) Теперь так же, как и в 1 примере, удаляем их и убираем фильтр.
В результате в таблице будут только те товары, у которых цена > 100.
<hr />
Для удаления строк по определённому условию в VBA можно написать цикл, в котором перебираются все строки и одна (несколько) ячеек сравниваются с определённым значением.
Если условие выполняется, тогда удаляем строку с помощью команды Delete.
Создаём кнопку и привязываем к ней код (это самое простое, что можно придумать):
Sub Кнопка1_Щелчок()
Dim i As Integer
For i = 1 To 10
If Cells(i, 3) < 100 Then Rows(i).Delete
Next
End Sub
Понятно, что если строчек будет не 10, а, например, 100, то цикл будет идти от 1 до 100.
В объекте Cells(i, 3) стоит цифра 3, так как проверяются данные у 3 по счёту столбца.
Но этот код всё же не идеален и некоторые строчки в цикле пропускаются (так как после команды Delete они смещаются) - придётся нажимать на кнопку не один раз, а несколько.