Удалить ячейки содержащие слово excel

In this guide, we’re going to show you how to remove all rows containing specific value in Excel. We are going to be taking a look at two methods:

  • Find and Replace
  • Filter

These methods are good for removing all rows containing a specific value, such as repeating headers.

Removing all rows containing specific value using Find and Replace

  1. If you wish to perform removing a specific range, select your data, including the values you want to remove. Otherwise, you do not need to select any cells.
  2. Press the Ctrl + F key combination to open Find and Replace.
  3. Type in the value in the rows you want to remove.
  4. Click Find All.
  5. Select any of the found values in the results pane.
  6. Press Ctrl + A to select all of them. You can select specific values you want to remove by using Ctrl or Shift keys.
  7. Close the Find and Replace window.
    How to remove all rows containing specific value in Excel - Find Replace
  8. Press Ctrl + — to open Delete
  9. Select Entire row
  10. Click OK button to delete those rows.

After clicking OK, Excel will remove all rows containing the selected cells.

Warning: If found and selected items contain an Excel Table header, the Ctrl + — shortcut will not work.

Removing all rows containing specific value using Filter

This approach is more suitable for data in a table structure.

  1. Select your data, including the values you want to remove.
  2. Press Ctrl + Shift + L to enable Filters. Alternatively, you can click Filter in Data tab.
  3. Click the down arrow in the header of the column that contains the value you want to select.
  4. Select the value(s) you want to remove in the filter dialog.
  5. Click OK to apply the filter.
    How to remove all rows containing specific value in Excel - Filter
  6. Select each cell individually by clicking cells while holding down the Ctrl key. Don’t use the Shift key or drag the mouse to select cells.
  7. Once the cells are selected, press Ctrl + —.
  8. Click OK on prompt dialog to delete rows.

Clear the filters to see the remaining rows.

  • Редакция Кодкампа

17 авг. 2022 г.
читать 2 мин


В следующем пошаговом примере показано, как удалить в Excel все строки, содержащие определенный текст.

Шаг 1: Создайте данные

Во-первых, давайте создадим набор данных, который показывает рейтинги трех игроков в разных баскетбольных командах:

Шаг 2. Найдите значения с определенным текстом

Предположим, мы хотим удалить каждую строку, содержащую « Плохо » в качестве одной из оценок.

На вкладке « Главная » нажмите значок « Найти и выбрать », а затем нажмите « Найти » в раскрывающемся меню:

В появившемся новом окне введите Bad в поле поиска и нажмите « Найти все ».

Затем нажмите Ctrl+A , чтобы выделить все ячейки, содержащие текст Bad.Затем нажмите Закрыть .

Все ячейки, содержащие Bad , будут выделены.

Шаг 3: удалите строки с определенным текстом

Затем щелкните значок « Удалить » на вкладке « Главная », а затем выберите « Удалить строки листа » в раскрывающемся меню:

Все строки, содержащие Bad в одной из ячеек, будут автоматически удалены:

Обратите внимание, что ни в одной из оставшихся строк рейтинг игрока не указан как плохой ни в одном из столбцов.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в Excel:

Excel: как проверить, содержит ли ячейка частичный текст
Excel: как проверить, содержит ли ячейка текст из списка
Excel: как рассчитать среднее значение, если ячейка содержит текст
Excel: как подсчитать частоту текста

Написано

Редакция Кодкампа

Замечательно! Вы успешно подписались.

Добро пожаловать обратно! Вы успешно вошли

Вы успешно подписались на кодкамп.

Срок действия вашей ссылки истек.

Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.

Успех! Ваша платежная информация обновлена.

Ваша платежная информация не была обновлена.

Хитрости »

28 Май 2011              644978 просмотров


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

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

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

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

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

  • в Excel 2003 надо выбрать Условие и в появившейся форме выбрать непосредственно условие(«равно», «содержит», «начинается с» и т.д.), а напротив значение в соответствии с условием.
  • Для 2007-2010 Excel нужно выбрать Текстовые фильтры(Text Filters) и либо сразу выбрать одно из предлагаемых условий, либо нажать Настраиваемый фильтр(Custom Filter) и ввести значения для отбора в форме

После этого удалить отфильтрованные строки. В 2007 Excel могут возникнуть проблемы с удалением отфильтрованных строк, поэтому рекомендую сначала так же прочитать статью: Excel удаляет вместо отфильтрованных строк — все?! Как избежать.


 
Способ второй:

применить код VBA, который потребует только указания значения, которое необходимо найти в строке и номер столбца, в котором искать значение.

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("Укажите значение, которое необходимо найти в строке", "www.excel-vba.ru", "")
    If sSubStr = "" Then lMet = 0 Else lMet = 1
    lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 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("Укажите значение, которое необходимо найти в строке", "www.excel-vba.ru", "")
    lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 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("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 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 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.excel-vba.ru", 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

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

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

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

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

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

If Not rr Is Nothing Then rr.EntireRow.Delete

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

If Not rr Is Nothing Then rr.EntireRow.Hidden = True

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

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

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

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

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

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

Так же см.:
Что такое макрос и где его искать?
Что такое модуль? Какие бывают модули?
Как создать кнопку для вызова макроса на листе
Удаление всех пустых строк в таблице
Удаление пустых столбцов на листе
Установить Быстрый фильтр
Фильтр


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Sub Удаление_строк_по_слову()  
Dim iRange As Range  
Dim TextToFind As Variant  

  With Application  
.ScreenUpdating = False  
.Calculation = xlCalculationManual  
TextToFind = Application.InputBox(«Введите текст для поиска» & Chr(13) & Chr(13) & _  
«Внимание: Все строки, которые содержат это слово в любой ячейке будут удалены!», _  
«Поиск и удаление строк», «», «»)  
If TextToFind = «» Or TextToFind = False Then Exit Sub  
TextToFind = Trim(TextToFind)  
With ActiveSheet.Cells  
Set iRange = .Find(What:=TextToFind, LookIn:=xlFormulas, LookAt:=xlPart)  
If Not iRange Is Nothing Then  
Do  
iRange.EntireRow.Delete  
Set iRange = .Find(What:=TextToFind, LookIn:=xlFormulas, LookAt:=xlPart)  
Loop While Not iRange Is Nothing  
Else  
MsgBox «Текст » & TextToFind & » на листе не найдено!», 48, «Ошибка»  
Application.Calculation = xlCalculationAutomatic  
Exit Sub  
End If  
End With  
.Calculation = xlCalculationAutomatic  
.ScreenUpdating = True  
End With  
MsgBox «Строки с текстом » & TextToFind & » удалены!», 64, «Конец»  
End Sub

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

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

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

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

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

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

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

Точно так же создание и запуск макроса действительно не требуется для такой простой задачи. Настройка действия займет больше времени, чем время, необходимое для завершения стирания. Лучше всего использовать его, когда вам нужно быстро импортировать имена файлов .

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

Найдите слово, из которого состоят клетки

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

Вы можете начать удалить строки с тем же словом, нажав вкладку «Пуск», а затем кнопку «Изменить», открывающую доступ к диалоговому окну «Найти», где вы можете ввести символы, которые хотите удалить.

После нажатия кнопки «Найти все» появится список с количеством ячеек, содержащих символы, которые вы должны были найти.

Выделить и удалить ячейки с определенным словом

Поэтому, чтобы и дальше ускорять процесс удаления строк с одним и тем же словом, вам нужно щелкнуть по одной из ячеек, а затем нажать комбинацию » Ctrl + ». Результатом будет полностью закрашенный список ячеек.

После закрытия диалогового окна функции «Найти и выбрать» все поля, содержащие определенное вами слово, будут автоматически выделены серым цветом.

На последнем этапе их достаточно удалить. Это можно сделать с помощью кнопки «Удалить», сочетания клавиш «Ctrl + символ вычитания» или с помощью кнопки «Ячейки», расположенной внутри дома, для нажатия «Удалить».

Откроется небольшое окно, в котором вы сможете выбрать действие. Так что попробуйте пометить того, кто говорит о «Удалить все строки» затем нажмите «Принять».

Когда закончите, вы сможете комфортно работать с остальными данными, которые продолжают составлять таблицу. Что вы можете повторно отладить с помощью этого простого метода в любое время, когда оно вам больше не понадобится.

Кроме того, откройте для себя расширенные возможности Excel никогда не казался таким простым. Что ж, с простыми вариантами задача, которая казалась сложной, выполнена. Например, заменить или удалить звездочки на листе Excel .

Понравилась статья? Поделить с друзьями:
  • Удалить форматирование всего excel
  • Удалить ячейки с одинаковым содержимым excel
  • Удалить фон на картинке word
  • Удалить ячейки в excel с телефона
  • Удалить фильтр в excel 2007