Как удалить строки в таблице excel по условию
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
| ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Удаление строк по заданному фильтру в Excel или Word
Имеется огромная таблица в формате doc и xls. Данных порядка 1000 страниц в ворде. Таблица имеет такой вид: 2-2/2013 | текст | | 2-132/2013 | текст | | и есть список первого столбца. Например 2-2, 2-13 через запятую (далее фильтр) и.т.д. Нужно удалить из таблицы строки, первый столбец, который совпадает с фильтром. Обрабатывать таблицу не важно где, в word или xls. Подскажите в какую сторону копать? из ЯП знаю php, если возможно на нём, то ткните носом
Отслеживать
задан 2 авг 2018 в 12:08
Turumpumpum Turumpumpum
439 2 2 золотых знака 7 7 серебряных знаков 27 27 бронзовых знаков
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
- Преобразовать список на удаление в «один номер на строку» — Word, Поиск и Замена, заменить запятые на символ «знак абзаца».
- Загрузить таблицу из Word в Excel на Лист1.
- Загрузить фильтр из Word в Excel на Лист2.
- На листе Лист1 в ячейке, скажем, H1, ввести формулу =ЛЕВСИМВ(A1;НАЙТИ(«/»;A1)-1) .
- В ячейке I1 ввести формулу =ВПР(H1;Лист2!A:A;1;ЛОЖЬ) .
- Выделить ячейки H1:I1 и растянуть на всю высоту данных.
- Выделить все столбцы данных и выполнить сортировку по столбцу I.
- Удалить все строки, где у столбца I значение НЕ равно #Н/Д .
- Удалить столбцы H и I.
Отслеживать
ответ дан 2 авг 2018 в 12:29
31.5k 3 3 золотых знака 21 21 серебряный знак 40 40 бронзовых знаков
В книге Excel на листе Лист1 расположена таблица. В строке 1 — шапка таблицы. В столбце А — коды, которые нужно сравнивать с фильтром. В ячейке I1 — коды через запятую (данные для фильтра).
Макрос разместить в общем модуле. После отработки кода будут удалены строки, у которых коды столбца А найдены в строке из * I1*
Sub DelRow() Dim aData() Dim rRng As Range Dim sFilter As String Dim i As Long, n As Long With Worksheets("Лист1") i = .Cells(.Rows.Count, 1).End(xlUp).Row: If i < 2 Then Exit Sub aData = .Range("A1:A" & i).Value sFilter = .Range("I1").Value For i = 2 To UBound(aData) If InStr(sFilter, Trim$(Split(aData(i, 1), "/")(0))) Then n = n + 1 If rRng Is Nothing Then Set rRng = .Cells(i, 1) Else Set rRng = Union(rRng, .Cells(i, 1)) End If End If Next i End With If Not rRng Is Nothing Then rRng.EntireRow.Delete: Set rRng = Nothing MsgBox "Удалено строк: " & n, 64, "" End Sub
Строку поиска лучше дополнить, иначе возможно определение части значения из фильтра:
If InStr("," & sFilter & ",", "," & Trim$(Split(aData(i, 1), "/")(0)) & ",") Then
покупка
Как в Excel удалить строки, не содержащие определенного текста?
Возможно, некоторые из вас знают, как удалить целые строки, когда они содержат определенные тексты в Excel, но если вы хотите полностью удалить строку, когда они не содержат определенных текстов, как вы могли бы это сделать? Теперь, следуя этому руководству, вы можете найти способ решить эту проблему в Excel.
Удалить строки, не содержащие определенного текста, с помощью фильтра
В Excel функция «Фильтр» может быстро помочь вам отфильтровать строки, не содержащие определенного текста, а затем вы сможете выбрать их для удаления.
1. Выберите столбец, содержащий текст, на основе которого вы будете удалять строки, и нажмите Данные > Фильтр. Смотрите скриншот:
![]() |
![]() |
2. В заголовке столбца есть кнопка фильтра, нажмите ее, чтобы открыть раскрывающийся список, отметьте все, кроме определенного текста, на котором вы хотите основываться. Смотрите скриншот:

3. После этого вы увидите только строку заголовка, а строки, не содержащие определенного текста, будут отфильтрованы. Смотрите скриншот :

4. Выберите все из них, кроме строки заголовка, и щелкните правой кнопкой мыши, чтобы выбрать Удалить строку из контекстного меню. Смотрите скриншот:

5. Затем нажмите Данные > Фильтр снова, а затем удаляются все строки, не содержащие определенного текста. Смотрите скриншот:
![]() |
![]() |
Удалить строки, не содержащие определенного текста, с помощью VBA
VBA очень полезен для довольно сложных операций в Excel. Чтобы удалить строки, не содержащие определенного текста, выполните следующие шаги.
1. Нажмите Alt + F11 для отображения Microsoft Visual Basic для приложений окно.
2. В окне нажмите Вставить > Модули чтобы отобразить новое окно модуля, затем скопируйте следующий код VBA в окно модуля.
VBA: удалить всю строку, если ячейка содержит определенный текст.
Sub DeleteRowNoInclude() 'Update20140618 Dim xRow As Range Dim rng As Range Dim WorkRng As Range Dim xStr As String On Error Resume Next xTitleId = "KutoolsforExcel" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8) xStr = Application.InputBox("Text", xTitleId, "", Type:=2) Application.ScreenUpdating = False For i = WorkRng.Rows.Count To 1 Step -1 Set xRow = WorkRng.Rows(i) Set rng = xRow.Find(xStr, LookIn:=xlValues) If rng Is Nothing Then xRow.Delete End If Next Application.ScreenUpdating = True End Sub
3. Нажмите Run , и появится диалоговое окно, в котором вы сможете выбрать рабочий диапазон. Смотрите скриншот:

4. Затем нажмите OKи введите текст, на котором нужно удалить основу строк, в другом всплывающем диалоговом окне. Смотрите скриншот:

5. Нажмите OK, и строки, не содержащие Apple, будут удалены.
Удалить строки, не содержащие определенного текста, с помощью Kutools for Excel
Если вы думаете, что описанные выше методы не являются легкими для вас, вы можете использовать Kutools for Excel's Выбрать определенные ячейки функцию.
Kutools for Excel включает более 300 удобных инструментов Excel. Бесплатная пробная версия без ограничений в течение 30 дней. Получить сейчас
1. Выберите столбец, в котором вы хотите удалить строки, не содержащие определенного текста, и нажмите Кутулс > Выберите Инструменты > Выбрать определенные ячейки. Смотрите скриншот:

2. А в Выбрать определенные ячейки диалог, проверьте Весь рядИ выберите Не содержит, и введите определенный текст в текстовое поле, также вы можете нажать кнопку диапазона в Конкретный тип раздел для выбора ячейки, содержащей определенный текст.

3. Затем нажмите Ok, то выбираются строки, не содержащие определенного текста, щелкните правой кнопкой мыши, чтобы выбрать Удалить из контекстного меню. Смотрите скриншот:

4. Теперь все строки, не содержащие определенного текста в диапазоне, удаляются. Щелкните ее, чтобы получить дополнительную информацию о выборе конкретных ячеек..
Относительные статьи:
- Удалить целые строки, если ячейка не содержит нуля в Excel
- Удалить строки, не соответствующие критериям на другом листе
Как в Excel удалить строки по условию

Эксель
Автор Анатолий Костевич На чтение 2 мин Опубликовано 09.02.2023 Обновлено 30.12.2023
При редактировании больших таблиц в Microsoft Office Excel иногда нужно избавиться от целой группы данных, которые распределены по всему массиву. Вручную отыскивать нужные области достаточно трудоемкий процесс, требующий большого количества времени. Сегодня разберемся, как в excel удалить строки по условию.
Фильтр
Чтобы быстро избавиться от ненужных данных, необходимо воспользоваться фильтром. В качестве примера рассмотрим отчет о выручке с проданных фруктов. Необходимо убрать позиции, где выручка меньше 100.

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


- Щелкаете по стрелочке в столбце Выручка, переходите к строке Числовые фильтры и выбираете нужное условие. В нашем случае меньше.


- В новом окне вводите число, меньше которого будет применяться фильтрация.


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


- Снова нажимаете стрелочку вниз и щелкаете по опции снять фильтр.
- Таблица принимает вид без удаленных строк.
Макросы
Чтобы автоматически убирать ненужные строки, можно воспользоваться специальным инструментом редактора – макросами. Эта функция требует знаний в области программирования и синтаксисе языка Visual Basic for Application (VBA), а также необходимо иметь идею для решения задачи по средствам подпрограммы. В интернете много готовых макросов, которые подходят для удаления строк в таблице. Достаточно их скачать и привязать к редактору.
Важно! Скачивайте файлы только с проверенных сайтов во избежание заражения компьютера вирусами.
Как видите, удалить строки по условию не трудно. Более продвинутые пользователи могут воспользоваться макросами, а для остальных отлично подойдет фильтрация данных по заданному критерию.



