Пустые строки в ячейке. Как удалить пустые строки в Excel. Самое удобное удаление

Работая с большими объемами данных в таблицах Excel, мы часто сталкиваемся с наличием пустых строк в Excel. Для того чтобы убрать пустые строки есть несколько способов:

  • с помощью сортировки данных;
  • с помощью фильтрации данных;
  • с помощью выделения группы ячеек;
  • с помощью вспомогательного столбца;

Давайте рассмотрим каждый из них.

Как удалить пустые строки в Excel с помощью сортировки

Представим, что у нас есть таблица с данными продаж по разным странам и городам:

В этой таблице есть пустые строки. Наша задача их удалить. Мы можем сделать это поочередно, выделяя каждую пустую строку, и правой клавишей мыши удалять строки. Более простой способ это отсортировать пустые строки и затем одним движением их удалить.

Для того чтобы отсортировать данные нашей таблицы проделаем следующие шаги:

  • Выделим левой клавишей мыши диапазон данных таблицы, затем на вкладке “Данные” нажмем на кнопку “Сортировка”:
  • В появившемся диалоговом окне сортировки выберем столбец, по которому будут отсортированы данные и укажем их порядок:
  • После этого система автоматически отсортирует строки с пустыми ячейками, и разместит их внизу таблицы:
  • Затем, выделите пустые строки левой клавишей мыши и удалите их, нажав правой кнопкой мыши и выбрав пункт “Удалить”:

Если вы хотите удалить строки целиком, то я рекомендую выделять их отмечая левой клавишей мыши за порядковые номера строк. Так, система выделит все колонки в строке и вы за пару кликов сможете их удалить.

Как удалить пустые строки в Excel с помощью фильтрации

Для того чтобы удалить строки в той же самой таблице, но уже с помощью фильтрации, проделаем следующие шаги:

  • Выделим левой клавишей мыши диапазон данных таблицы, затем на вкладке “Данные” нажмем на кнопку “Фильтр”:

Важно! Для корректной фильтрации данных обязательно, перед нажатием кнопки “Фильтр”, выделите область со значениями таблицы, включая пустые строки. Если этого не сделать – фильтрация данных таблицы будет осуществляться до первой пустой строки!

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

У этого способа удаления пустых строк есть минус, он заключается в том, что для их удаления вам необходимо отфильтровать каждую колонку. Делать это следует внимательно, дабы не удалить строки с данными.

Как убрать пустые строки в Excel с помощью выделения группы ячеек

Для удаления пустых строк можно воспользоваться инструментом выделения группы ячеек. Для этого:

  • Выделите ячейки с данными вашей таблицы;
  • Перейдите в меню “Найти и выделить” и выберите пункт “Выделить группу ячеек”:
  • Во всплывающем окне отметьте пункт “Пустые ячейки”:
  • Система автоматически выделит все пустые ячейки:
  • Для удаления выделенных строк, нажмите на любой из правой кнопкой мыши и выберите пункт “Удалить”:
  • Затем, во всплывающем окне выберите пункт “Строку”:
  • Готово!

Внимание! Будьте аккуратны с использованием данного способа! Удаляя выделенные ячейки, есть высокая вероятность того, что вы удалите строки с данными, например, в которых есть только одна пустая ячейка, а в соседних ячейках строки есть данные!

Как удалить пустые строки в Экселе с помощью вспомогательного столбца

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

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

Используя раннее описанные способы, высока вероятность удалить строки с данными.

Поэтому, чтобы избежать потери данных при удалении пустых строк, создадим справа от таблицы столбец, в который вставим функцию , в ней укажем диапазон всех ячеек каждой строки таблицы и протянем формулу до конца таблицы:

  • Функция ведет подсчет пустых ячеек в указанном диапазоне. Так как столбцов в нашей таблице с данными 4 штуки, то если во вспомогательном столбце мы найдем значение “4” это будет означать, что эта строка в таблице пустая и ее можно удалить. Для этого отфильтруем значения таблицы по вспомогательному столбцу по числу “4” и определим пустые строки:
  • Пустые строки найдены. Теперь их можно выделить и удалить.
Самый простой способ удалить пустые строки из таблицы – сделать сортировку столбцов. Для этого нужно выделить диапазон, в котором находится таблица. Вызвать на панели инструментов «Главная/Сортировка» и «Фильтр/Сортировка от минимального к максимальному». В начале таблицы отобразятся пустые строки. Их можно выделить и удалить.

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

Использование фильтра

Для обнаружения пустых ячеек возможно использование фильтра. Для установки фильтра необходимо выделить столбец и вызвать на панели инструментов «Данные/Фильтр». Затем отфильтровать значения в столбце, выбрав позицию в фильтре с пустыми ячейками. Теперь в таблице будут отображаться только незаполненные ячейки, которые нужно удалить.

Использование функции выделения группы ячеек

Еще одним стандартным способом является выделение группы ячеек. Для этого необходимо выбрать инструмент выделения на панели инструментов «Главная/Найти и выделить/Выделение группы ячеек». Должно появиться диалоговое окно, в котором надо отметить выделение пустых ячеек. Далее выбирайте в меню «Главная/Ячейки/Удалить». Все пустые ячейки удалятся.

Если в строке, помимо пустых ячеек, содержатся заполненные, то в Excel 2007 появится сообщение о неприменимости команды удаления для перекрывающихся диапазонов.

Использование макросов и надстроек

Для решения проблемы удаления пустых строк из таблицы можно воспользоваться специально созданными для этой цели макросом или надстройкой. Макрос – это процедура, записанная на языке программирования VBA. Использование макроса позволяет выполнять в приложении Excel 2007 последовательность любых действий. Макрос для удаления пустых строк можно написать самому или скачать в интернете готовый. Также можно найти в интернете и использовать уже готовый набор макросов – надстройку, в которой реализована функция поиска и удаления пустых строк.

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

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

Как удалить ячейку?

1. Откройте в Excel необходимую таблицу. Щелкните левой кнопкой по элементу, который нужно удалить.

2. На вкладке «Главная», в правой части панели, откройте ниспадающее меню «Удалить» и выберите пункт «Удалить ячейки».

3. В дополнительном окне выберите способ удаления (кликните радиокнопку возле необходимой опции):

  • «Ячейки со сдвигом влево» - после удаления все элементы, находящиеся в строке по правую сторону переместятся влево;
  • «Ячейки со сдвигом вверх» - находящиеся ниже элементы в столбце поднимутся вверх.

4. Нажмите «OK».

Как изменить значение ячейки?

1. Клацните по элементу 2 раза левой кнопкой.

2. Когда появится курсор, изменяйте или удаляйте параметр точно так же, как и в Ворде (текстовом редакторе Word):

удерживая левую кнопку, выделите символы и нажмите клавишу «Delete», чтобы потом напечатать другие данные или вставить пробелы.

Как удаляются строки и столбцы?

1. Кликните по названию столбца (специальное поле вверху). Вся ячейки в столбце выделятся.

2. Не убирая курсор с подсвеченных элементов, нажмите правую кнопку.

3. В появившемся контекстном меню Excel клацните «Удалить».

4. Аналогичным образом убирается из проекта и строка: выделите её и активируйте соответствующую команду в меню.

Как убирать из таблицы одинаковые ячейки?

Способ #1

1. На вкладке «Данные» нажмите опцию «Удалить дубликаты».

2. В настроечной панели укажите столбец, в котором требуется убрать дубли:

  • нажмите «Снять выделение»;
  • установите щелчком мышки метку в списке, где требуется.

Внимание! Если требуется убрать дубли во всей таблице, соответственно, метки должны быть установлены в списке возле каждого столбца.

3. Клацните «OK».

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

Способ #2

1. На вкладке «Данные», в блоке «Фильтр», клацните подраздел «Дополнительно».

2. В окне «Расширенный фильтр» укажите, где сохранять отредактированный список (на месте или в отдельный файл).

3. Клацните по окошку «Только уникальные записи». Нажмите «OK».

Как убрать пустые ячейки?

Способ #1

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

2. Нажмите клавишу «F5».

3. В открывшейся панели клацните «Выделить».

4. Включите кликом мыши опцию «Пустые ячейки». Нажмите «OK».

5. Удалите выделенные элементы через контекстное меню (клацните по ним правой кнопкой).

Примечание. Опытные пользователи используют специальную формулу для удаления пустых элементов. Она записывается в памяти Excel в виде скрипта, написанного на языке Visual Basic. Подробней с этой технологией вы можете ознакомиться на специализированных форумах.

Способ #2

1. Выделите столбец, который нужно отредактировать.

2. Откройте раздел «Данные» и нажмите «Фильтр».

3. Щёлкните по установленному фильтру («стрелочка» в ячейке).

4. Снимите флажок в надстройке «Выделить всё».

5. Щёлкните окошко в «Пустые», а потом кнопку «OK».

6. В столбце отобразятся только пустые ячейки. Кликните по ним правой кнопкой и нажмите «Удалить… ».

Комфортной работы в Excel!

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

Удаление с помощью сортировки

Откуда могут появляться записи с отсутствием в них данных? Такое может наблюдаться при выгрузке информации из базы данных или экспорте из другого файла или приложения. Значения могут быть уничтожены вручную без удаления самой строки. Так или иначе, с этим явлением нужно и можно бороться.

Один из способов, - использование сортировки. Если необходимо удалить те записи, у которых ни в одной ячейке нет данных, сортировать можно по любому столбцу. Если же только те, что не заполнены в определенных колонках - сортируйте только эту колонку. Покажем на примере, как это сделать для целиком пустых записей.

Поставщик косметики прислал прайс-лист, в котором часть информации была удалена. Это затрудняет работу с данными, поэтому мы хотим убрать эти строки. Выберем для сортировки колонку «Цена». Для упорядочивания значений можно воспользоваться меню «Сортировка и фильтр» панели «Редактирование» вкладки «Главная», отсортировав числа по возрастанию.

Или воспользоваться выпадающим меню заголовка форматированной таблицы. Так или иначе, после построения списка строки с отсутствующими ценами окажутся внизу таблицы. Теперь удалим пустые строки Excel в конце командой контекстного меню.

Использование фильтра

Еще один простой метод - применение фильтра к данным. Если ваша таблица отформатирована по стилям с заголовками, это облегчает задачу. Если же нет, установите на заголовок любого столбца или всех колонок фильтры. Для этого зайдите на вкладку «Главная», найдите панель инструментов «Редактирование» и в меню «Сортировка и фильтр» выберите пункт «Фильтр». На заголовках выделенного столбца или столбцов появятся кнопки с направленными вниз треугольниками, показывающие наличие выпадающего списка.

Теперь раскройте меню этого списка. Внизу перечня элементов колонки находится пункт «Пустые». Выделите его, предварительно сняв флажки со всех остальных элементов. В результате применения вы оставите только пустые строки Excel. Удалите их через список операций правого клика мыши или из блока операций «Ячейки» вкладки «Главная».

Выделение диапазона полей

Отмечаем таблицу и вызываем пункт меню «Выделить группу ячеек». Он находится в блоке команд «Редактирование» и вызывается операцией «Найти и выделить».

В окне настроек команды выбираем вариант «пустые ячейки» и нажимаем «ОК».

Программа отмечает нужные записи. Чтобы удалить пустые строки Excel, используйте команду «Удалить строки с листа», из меню операции «Удалить» блока «Ячейки».

Есть и другой способ выделения пустых полей. Чтобы им воспользоваться, откройте вкладку «Главная» и найдите блок «Редактирование». В меню «Найти и выделить» выполните команду «Перейти». В окне настроек перехода отметьте таблицу, с которой работаете, и нажмите кнопку «Выделить» внизу формы.

Недостаток метода выделения ячеек

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

Использование первых двух способов более надежно и безопасно, поэтому лучше использовать именно их, чтобы удалить пустые строки в Excel.


Баги и глюки Excel (3)

Как удалить строки по условию?

Предположу, что почти каждый сталкивался с ситуацией, когда необходимо удалить только определенные строки: имеется большая таблица и необходимо удалить из неё только те строки, которые содержат какое-то слово (цифру, фразу). Для выполнения подобной задачи можно воспользоваться несколькими способами.

Способ первый:
Использовать встроенное средство Excel - фильтр. Сначала его необходимо "установить" на листе:

  • Выделяем таблицу с данными, включая заголовки. Если их нет - то выделяем с самой первой строки таблицы, в которой необходимо удалить данные
  • устанавливаем фильтр:
    • для Excel 2003 : Данные -Фильтр -Автофильтр
    • для Excel 2007-2010 : вкладка Данные (Data) -Фильтр (Filter) (или вкладка Главная (Home) -Сортировка и фильтр (Sort&Filter) -Фильтр (Filter) )

Теперь выбираем условие для фильтра:

  • в Excel 2003 надо выбрать Условие и в появившейся форме выбрать непосредственно условие("равно", "содержит", "начинается с" и т.д.) , а напротив значение в соответствии с условием.
  • Для 2007-2010 Excel нужно выбрать Текстовые фильтры (Text Filters) и либо сразу выбрать одно из предлагаемых условий, либо нажать Настраиваемый фильтр (Custom Filter) и ввести значения для отбора в форме
Способ второй:
применить код VBA, который потребует только указания значения, которое необходимо найти в строке и номер столбца, в котором искать значение.
Dim lCol As Long Dim lLastRow As Long , li As Long Dim lMet As Long Dim arr sSubStr = InputBox(, "Запрос параметра" , "" ) If sSubStr = "" Then lMet = 0 Else lMet = 1 lCol = Val(InputBox(, "Запрос параметра" , 1)) If lCol = 0 Then Exit Sub lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count Application.ScreenUpdating = 0 Dim rr As Range For li = 1 To lLastRow If -(InStr(arr(li, 1), sSubStr) > 0) = lMet Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

Sub Del_SubStr() Dim sSubStr As String "искомое слово или фраза(может быть указанием на ячейку) Dim lCol As Long "номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim lMet As Long Dim arr sSubStr = InputBox("Укажите значение, которое необходимо найти в строке", "Запрос параметра", "") If sSubStr = "" Then lMet = 0 Else lMet = 1 lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "Запрос параметра", 1)) If lCol = 0 Then Exit Sub lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count arr = Cells(1, lCol).Resize(lLastRow).Value Application.ScreenUpdating = 0 Dim rr As Range For li = 1 To lLastRow "цикл с первой строки до конца If -(InStr(arr(li, 1), sSubStr) > 0) = lMet Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

Если значение sSubStr не будет указано, то будут удалены строки, ячейки указанного столбца которых, пустые.
Данный код необходимо поместить в стандартный модуль . Вызвать с листа его можно нажатием клавиш Alt + F8 , после чего выбрать Del_SubStr и нажать Выполнить . Если в данном коде в строке
If -(InStr(Cells(li, 1), sSubStr) > 0) = lMet Then
вместо = lMet указать lMet , то удаляться будут строки, не содержащие указанное для поиска значение. Иногда тоже удобно.
Но. Данный код просматривает строки на предмет частичного совпадения указанного значения. Например, если Вы укажете текст для поиска "отчет", то будут удалены все строки, в которых встречается это слово("квартальный отчет", "отчет за месяц" и т.д.). Это не всегда нужно. Поэтому ниже приведен код, который будет удалять только строки, указанные ячейки которых равны конкретно указанному значению:

Sub Del_SubStr() Dim sSubStr As String "искомое слово или фраза(может быть указанием на ячейку) Dim lCol As Long "номер столбца с просматриваемыми значениями Dim lLastRow As Long , li As Long Dim arr sSubStr = InputBox("Укажите значение, которое необходимо найти в строке" , "Запрос параметра" , "" ) lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение" , "Запрос параметра" "цикл с первой строки до конца If CStr(arr(li, 1)) = sSubStr Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

Sub Del_SubStr() Dim sSubStr As String "искомое слово или фраза(может быть указанием на ячейку) Dim lCol As Long "номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim arr sSubStr = InputBox("Укажите значение, которое необходимо найти в строке", "Запрос параметра", "") lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "Запрос параметра", 1)) If lCol = 0 Then Exit Sub lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count arr = Cells(1, lCol).Resize(lLastRow).Value Application.ScreenUpdating = 0 Dim rr As Range For li = 1 To lLastRow "цикл с первой строки до конца If CStr(arr(li, 1)) = sSubStr Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

Здесь так же, как и в случае с предыдущим кодом можно заменить оператор сравнения(Cells(li, lCol) = sSubStr) с равно на неравенство(Cells(li, lCol) sSubStr) и тогда удаляться будут строки, значения ячеек которых не равно указанному.

УДАЛЕНИЕ СТРОК НА ОСНОВАНИИ СПИСКА ЗНАЧЕНИЙ(МНОЖЕСТВЕННЫЕ КРИТЕРИИ)
Иногда бывают ситуации, когда необходимо удалить строки не по одному значению, а по нескольким. Например, если строка содержит или Итог или Отчет . Ниже приведен код, при помощи которого можно удалить строки, указав в качестве критерия диапазон значений.
Значения, которые необходимо найти и удалить перечисляются на листе с именем "Лист2". Т.е. указав на "Лист2" в столбце А(начиная с первой строки) несколько значений - они все будут удалены. Если лист называется иначе(скажем "Соответствия") в коде необходимо будет "Лист2" заменить на "Соответствия". Удаление строк происходит на активном в момент запуска кода листе. Это значит, что перед запуском кода надо перейти на тот лист, строки в котором необходимо удалить.

Sub Del_Array_SubStr() Dim sSubStr As String "искомое слово или фраза Dim lCol As Long "номер столбца с просматриваемыми значениями Dim lLastRow As Long , li As Long Dim avArr, lr As Long Dim arr lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение" , "Запрос параметра" , 1)) If lCol = 0 Then Exit Sub Application.ScreenUpdating = 0 lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count arr = Cells(1, lCol).Resize(lLastRow).Value With Sheets("Лист2" ) avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End (xlUp)) End With "удаляем Dim rr As Range For lr = 1 To UBound (avArr, 1) sSubStr = avArr(lr, 1) For li = 1 To lLastRow "цикл с первой строки до конца If CStr(arr(li, 1)) = sSubStr Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If DoEvents Next li DoEvents Next lr If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

Sub Del_Array_SubStr() Dim sSubStr As String "искомое слово или фраза Dim lCol As Long "номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim avArr, lr As Long Dim arr lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "Запрос параметра", 1)) If lCol = 0 Then Exit Sub Application.ScreenUpdating = 0 lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count "заносим в массив значения листа, в котором необходимо удалить строки arr = Cells(1, lCol).Resize(lLastRow).Value "Получаем с Лист2 значения, которые надо удалить в активном листе With Sheets("Лист2") "Имя листа с диапазоном значений на удаление avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)) End With "удаляем Dim rr As Range For lr = 1 To UBound(avArr, 1) sSubStr = avArr(lr, 1) For li = 1 To lLastRow "цикл с первой строки до конца If CStr(arr(li, 1)) = sSubStr Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If DoEvents Next li DoEvents Next lr If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

Чтобы код выше удалял строки не по точному совпадению слов, а по частичному(например, в ячейке записано "Привет, как дела?", а в списке есть слово "привет" - надо удалить, т.к. есть слово "привет"), то надо строку:

If CStr(arr(li, 1)) = sSubStr Then

If CStr(arr(li, 1)) = sSubStr Then

заменить на такую:

If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then

If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then

УДАЛЕНИЕ ИЗ ЛИСТА СТРОК, КОТОРЫХ НЕТ В СПИСКЕ ЗНАЧЕНИЙ(МНОЖЕСТВЕННЫЕ КРИТЕРИИ)
Т.к. в последнее время стало поступать все больше и больше вопросов как не удалять значения по списку, а наоборот - оставить в таблице только те значения, которые перечислены в списке - решил дополнить статью и таким кодом.
Значения, которые необходимо оставить перечисляются на листе с именем "Лист2". Т.е. указав на "Лист2" в столбце А(начиная с первой строки) несколько значений - после работы кода на листе будут оставлены только те строки, в которых присутствует хоть одно из перечисленных в списке значений. Если лист называется иначе(скажем "Соответствия") в коде необходимо будет "Лист2" заменить на "Соответствия". Удаление строк происходит на активном в момент запуска кода листе. Это значит, что перед запуском кода надо перейти на тот лист, строки в котором необходимо удалить.
В отличие от приведенных выше кодов, данный код ориентирован на то, что значения в списке указаны не полностью. Т.е. если необходимо оставить только те ячейки, в которых встречается слово "активы", то в списке надо указать только это слово. В этом случае если в ячейке будет записана фраза "Нематериальные активы" или "Активы сторонние" - эти ячейки не будут удалены, т.к. в них встречается слово "активы". Регистр букв при этом неважен.

"процедура оставляет в листе только те значения, которые перечислены в списке Sub LeaveOnlyFoundInArray() Dim sSubStr As String "искомое слово или фраза Dim lCol As Long "номер столбца с просматриваемыми значениями Dim lLastRow As Long , li As Long Dim avArr, lr As Long Dim arr Dim IsFind As Boolean lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение" , "www.сайт" , 1)) If lCol = 0 Then Exit Sub Application.ScreenUpdating = 0 lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count "заносим в массив значения листа, в котором необходимо удалить строки arr = Cells(1, lCol).Resize(lLastRow).Value "Получаем с Лист2 значения, которые надо удалить в активном листе With Sheets("Лист2" ) "Имя листа с диапазоном значений на удаление avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End (xlUp)) End With "удаляем Dim rr As Range For li = 1 To lLastRow "цикл с первой строки таблицы до конца IsFind = False For lr = 1 To UBound (avArr, 1) "цикл по списку значений на удаление sSubStr = avArr(lr, 1) If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then IsFind = True End If DoEvents Next lr "если значение таблицы не найдено в списке - удаляем строку If Not IsFind Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If DoEvents Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

"процедура оставляет в листе только те значения, которые перечислены в списке Sub LeaveOnlyFoundInArray() Dim sSubStr As String "искомое слово или фраза Dim lCol As Long "номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim avArr, lr As Long Dim arr Dim IsFind As Boolean lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www..ScreenUpdating = 0 lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count "заносим в массив значения листа, в котором необходимо удалить строки arr = Cells(1, lCol).Resize(lLastRow).Value "Получаем с Лист2 значения, которые надо удалить в активном листе With Sheets("Лист2") "Имя листа с диапазоном значений на удаление avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)) End With "удаляем Dim rr As Range For li = 1 To lLastRow "цикл с первой строки таблицы до конца IsFind = False For lr = 1 To UBound(avArr, 1) "цикл по списку значений на удаление sSubStr = avArr(lr, 1) If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then IsFind = True End If DoEvents Next lr "если значение таблицы не найдено в списке - удаляем строку If Not IsFind Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If DoEvents Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

Чтобы код выше сравнивал значения таблицы со значениями списка по точному совпадению слов, а не по частичному, то надо строку:

If Not rr Is Nothing Then rr.EntireRow.Delete

заменить на такую:

For li = 1 To lLastRow "цикл с первой строки до конца

1 - это первая строка; lLastRow - определяется автоматически кодом и равна номеру последней заполненной строки на листе. Если надо начать удалять строки только с 7-ой строки(например, в первых 6-ти шапка), то код будет выглядеть так:

For li = 7 To lLastRow "цикл с седьмой строки до конца

А если надо удалять только с 3-ей по 300-ю, то код будет выглядеть так:

For li = 3 To 300 "цикл с третьей строки до трехсотой