Возможности !SEMTools
↑ Навигация по задачам в Excel и возможностям надстройки !SEMTools ↑

Удалить строки таблицы Excel по условию или нескольким

, создатель !SEMToolsОбновлено 13 мин чтенияРубрики: Основы Excel

Работают без ограничений в бесплатной версии !SEMTools Lite и Pro.

Удалить строки по условию в Excel штатно можно так: включите фильтр (Ctrl+Shift+L), отберите строки по условию, выделите их и нажмите Главная → Удалить → Удалить строки с листа. Для условий, которых нет в фильтре (латиница, цифры, длина текста), добавьте вспомогательный столбец с формулой, например =СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(СИМВОЛ(СТРОКА($65:$90));A2)))>0, и фильтруйте по ИСТИНА. В Excel 365 очищенную копию таблицы без удаления строк строит =ФИЛЬТР(A2:C100;НЕ(ЕЧИСЛО(ПОИСК("опт";A2:A100)))). А удалить строки по условию в 2 клика — по выделенному столбцу — можно бесплатными процедурами !SEMTools.

Как удалить строки таблицы Excel по условию, если таких строк сотни, а условий несколько? Штатными средствами это фильтр, выделение и удаление — и так для каждого условия. Разберу их коротко, а основную часть статьи посвящу процедурам из раздела удаления диапазонов !SEMTools: выделили столбец, выбрали условие в меню — и строки, которые ему соответствуют, удалены целиком.

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

Удалить строки по условию штатными средствами Excel

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

  • Фильтр. Включите его сочетанием Ctrl+Shift+L, в нужном столбце выберите Текстовые фильтры → Содержит / Не содержит / Начинается с. Выделите отфильтрованные строки, затем Главная → Удалить → Удалить строки с листа и снимите фильтр.
  • Найти и заменить. Ctrl+F → «Найти все», в списке результатов Ctrl+A, закройте окно — найденные ячейки останутся выделенными. Дальше Главная → Удалить → Удалить строки с листа.
  • Сортировка. Отсортируйте таблицу по столбцу, чтобы ненужные строки оказались рядом, и удалите их одним блоком.

Оговорюсь сразу: фильтр не умеет условия вроде «есть латиница», «нет ни одной цифры» или «длина больше 50 символов». Для них приходится строить вспомогательный столбец с формулой, фильтровать его по ИСТИНА и удалять строки. Например, проверка, есть ли в ячейке цифры, через функции ПОИСК и СУММПРОИЗВ:

=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(СТРОКА($1:$10)-1;A2)))>0

Формула ищет в ячейке A2 каждую цифру от 0 до 9 и возвращает ИСТИНА, если нашлась хотя бы одна. Аналогично латиница — поиск каждой буквы от A до Z:

=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(СИМВОЛ(СТРОКА($65:$90));A2)))>0

А длина текста — функцией ДЛСТР, например больше 50 символов:

=ДЛСТР(A2)>50

Любую из этих формул нужно протянуть на весь столбец, отфильтровать, удалить строки, а затем удалить и сам вспомогательный столбец. В Excel 365 можно не удалять строки, а построить очищенную копию таблицы функцией ФИЛЬТР — но это уже новая таблица рядом, а не исходная.

Вспомогательные столбцы для удаления строк
B3=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(СИМВОЛ(СТРОКА($65:$90));A3)))>0
ABCD
1ЗапросЕсть латиница?Есть цифры?Длина > 15
2купить ноутбукЛОЖЬ=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(СИМВОЛ(СТРОКА($65:$90));A2)))>0ЛОЖЬ=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(СТРОКА($1:$10)-1;A2)))>0ЛОЖЬ=ДЛСТР(A2)>15
3ноутбук LenovoИСТИНА=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(СИМВОЛ(СТРОКА($65:$90));A3)))>0ЛОЖЬ=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(СТРОКА($1:$10)-1;A3)))>0ЛОЖЬ=ДЛСТР(A3)>15
4чехол iPhone 15ИСТИНА=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(СИМВОЛ(СТРОКА($65:$90));A4)))>0ИСТИНА=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(СТРОКА($1:$10)-1;A4)))>0ЛОЖЬ=ДЛСТР(A4)>15
5ноутбук 2024 года купитьЛОЖЬ=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(СИМВОЛ(СТРОКА($65:$90));A5)))>0ИСТИНА=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК(СТРОКА($1:$10)-1;A5)))>0ИСТИНА=ДЛСТР(A5)>15

Отфильтруйте нужный столбец по ИСТИНА, выделите видимые строки и удалите их — останутся только строки, не подходящие под условие. Для условия «И» объедините проверки функцией И в одном столбце.

В английском Excel: =SUMPRODUCT(--ISNUMBER(SEARCH(CHAR(ROW($65:$90)),A3)))>0

Удалить строки таблицы в 2 клика с !SEMTools

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

Меню находится на вкладке !SEMTools: УДАЛИТЬ → Диапазоны → Строки на листе по выд. столбцу. В нём три группы условий:

  • «Если ячейка НЕ содержит…» — ничего (пустая), букв или цифр, латиницы, цифр, конкретного слова, ни одного слова из списка;
  • «Если ячейка содержит…» — латиницу, цифры, одно слово, любое слово из списка, слова из цифр;
  • «Если длина содержимого…» — меньше или больше заданного числа символов.

Несколько правил, общих для всех процедур:

  • Выделять нужно больше одной ячейки и только один столбец. Иначе надстройка попросит: «Выделите более 1 ячейки 1 столбца».
  • Можно выделить столбец целиком, кликнув по его букве: надстройка сама обрежет выделение до последней заполненной ячейки.
  • Удаляется вся строка листа, а не только строка таблицы. Если справа или слева на тех же строках лежат другие данные, они удалятся тоже.
  • Строку заголовка в выделение лучше не включать: она проверяется наравне с данными.

Важный момент — удаление строк нельзя отменить. Ctrl+Z после макросов не работает, а кнопка отмены !SEMTools возвращает значения ячеек, но не удалённые строки. Перед удалением на важных данных сохраните файл или скопируйте лист.

Убрать строки с пустыми ячейками или без букв и цифр

Две процедуры из группы «Если ячейка НЕ содержит…» чистят таблицу от строк, в которых в нужном столбце фактически нет данных:

  • Ничего — удаляет строку, если ячейка пустая. Пробел — это уже содержимое, такая ячейка пустой не считается.
  • Букв или цифр — удаляет строку, если в непустой ячейке нет ни одной буквы и ни одной цифры: только знаки препинания, пробелы, тире, символы вроде «###» или «—». Буквы учитываются любого алфавита, не только русского и английского. Пустые ячейки эта процедура не трогает.
Ячейка столбца«Ничего»«Букв или цифр»
(пусто)удалитоставит
—оставитудалит
« » (два пробела)оставитудалит
Артикул A-1024оставитоставит

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

Удалить строки с пустыми ячейками в Excel: таблица до и после
«Если ячейка НЕ содержит…» → Ничего: удалены строки, где ячейка пустая
Удалить строки без букв и цифр в Excel: таблица до и после
«Если ячейка НЕ содержит…» → Букв или цифр: удалены строки с одними знаками и тире, пустые остались

Убрать строки с латиницей или без неё

Латиница — это английские буквы A–Z в любом регистре. Процедур две, по одной в каждой группе:

  • «Если ячейка содержит…» → Латиницу — удаляет строку, если в ячейке есть хотя бы одна латинская буква;
  • «Если ячейка НЕ содержит…» → Латиницы — удаляет строку, если латинских букв в ячейке нет ни одной.

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

Ячейка столбца«Латиницу»«Латиницы»
купить ноутбукоставитудалит
ноутбук Lenovoудалитоставит
(пусто)оставитудалит

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

Удалить строки с латиницей в Excel: таблица до и после
«Если ячейка содержит…» → Латиницу: удалены строки с английскими буквами, пустые остались
Удалить строки без латиницы в Excel: таблица до и после
«Если ячейка НЕ содержит…» → Латиницы: остались только строки с латиницей, пустые удалены

Убрать строки с цифрами, без цифр или с числами

Здесь три процедуры, и разница между ними важна:

  • «Если ячейка содержит…» → Цифры — удаляет строку, если в ячейке есть хотя бы одна цифра, где угодно: «iPhone 15», «A-1024», «2 шт».
  • «Если ячейка НЕ содержит…» → Цифр — удаляет строку, если цифр в ячейке нет совсем. Пустые ячейки тоже попадают под условие.
  • «Если ячейка содержит…» → Слова → Слова из цифр — удаляет строку, только если в ячейке есть отдельное слово-число, отделённое пробелами: «15», «2024», «3,5». «iPhone15» или «A-1024» такую строку не удалят.
Ячейка столбца«Цифры»«Цифр»«Слова из цифр»
чехол iPhone 15удалитоставитудалит
чехол iPhone15удалитоставитоставит
чехол для телефонаоставитудалитоставит

«Слова из цифр» удобны для чистки поисковых запросов: строки с годами, номерами моделей и количеством удаляются, а запросы, где цифры склеены с буквами, остаются.

Удалить строки с цифрами в Excel: таблица до и после
«Если ячейка содержит…» → Цифры: удалены строки, где есть хотя бы одна цифра
Удалить строки без цифр в Excel: таблица до и после
«Если ячейка НЕ содержит…» → Цифр: остались строки с цифрами, пустые удалены
Удалить строки со словами из цифр в Excel: таблица до и после
Слова → Слова из цифр: удалены строки с отдельным числом («42», «1800»), а «S24» и «K380» остались

Удалить строку по наличию или отсутствию слова

Процедуры ищут слово целиком, а не фрагмент: при поиске слова «кот» строка «котлеты на пару» не удалится. Регистр не важен. Можно ввести и словосочетание — тогда ищется именно эта последовательность слов.

  • «Если ячейка содержит…» → Слова → Одно слово — надстройка спросит слово и удалит все строки, где оно есть;
  • «Если ячейка НЕ содержит…» → Слов → Конкретного слова — удалит все строки, где этого слова нет. По сути это «оставить только строки с нужным словом».
Ячейка столбцаОдно слово «опт»Конкретного слова «опт»
купить кроссовки оптудалитоставит
кроссовки оптомоставитудалит
кроссовки опт.см. нижесм. ниже

А что с последней строкой? Слова разделяются пробелами, поэтому «опт.» с точкой для надстройки — другое слово. Чтобы знаки препинания не мешали, включите галочку «Игнорировать пунктуацию» в первой группе вкладки !SEMTools (название видно в подсказке при наведении): тогда точки, запятые и скобки работают как разделители слов, а сам текст в ячейках не меняется.

Удалить строки, содержащие слово, в Excel: таблица до и после
Слова → Одно слово: удалена строка с заданным словом
Удалить строки без нужного слова в Excel: таблица до и после
Слов → Конкретного слова: осталась только строка с заданным словом

Удалить строки по списку слов: любое или ни одного

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

  • «Если ячейка содержит…» → Слова → Любое из списка — удаляет строку, если в ячейке есть хотя бы одно слово из списка;
  • «Если ячейка НЕ содержит…» → Слов → Ни одного из списка — удаляет строку, если в ячейке нет ни одного слова из списка.

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

Список словЯчейка столбца«Любое из списка»
бесплатно, скачать, торрентскачать прайс бесплатноудалит
бесплатно, скачать, торренткупить прайс-листоставит

Это классическая чистка семантики от минус-слов: список «бесплатно, скачать, своими руками, отзывы» убирает нецелевые запросы за один проход. Два нюанса. В списке должны быть именно отдельные слова, словосочетание из двух слов не сработает. И пунктуация, приклеенная к слову в ячейке, мешает совпадению: «скачать,» и «скачать» — разные слова. Перед чисткой удалите знаки препинания в проверяемом столбце или в его копии.

Удалить строки по списку слов в Excel: таблица до и после
Слова → Любое из списка: удалены строки, где есть хотя бы одно слово из списка
Удалить строки без слов из списка в Excel: таблица до и после
Слов → Ни одного из списка: остались только строки со словами из списка

Удалить строки по длине текста в ячейке

Группа «Если длина содержимого…» удаляет строки по числу символов в ячейке, включая пробелы:

  • Меньше — надстройка спросит число N и удалит строки, где в ячейке меньше N символов;
  • Больше — удалит строки, где в ячейке больше N символов.

Ровно N символов не удаляются ни той, ни другой процедурой. Примеры задач: убрать слишком короткие запросы из одного-двух символов, отсеять заголовки длиннее 60 символов, найти обрезанные при выгрузке описания. Пустая ячейка имеет длину 0, поэтому «Меньше» при N ≥ 1 удалит и строки с пустыми ячейками.

Удалить строки короче N символов в Excel: таблица до и после
Длина содержимого → Меньше 20: удалены строки короче 20 символов, в том числе пустые; «Чайник электрический» (ровно 20) остался
Удалить строки длиннее N символов в Excel: таблица до и после
Длина содержимого → Больше 20: удалены строки длиннее 20 символов

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

Каждая процедура проверяет одно условие в одном столбце, но их легко комбинировать:

  • Любое из условий (ИЛИ). Запустите процедуры по очереди: сначала удалите строки с латиницей, затем короче 3 символов, затем по списку минус-слов. Строка, подходящая хотя бы под одно условие, исчезнет.
  • Условия по разным столбцам. Выделите сначала один столбец и запустите нужное условие, затем другой — оставшиеся строки проверятся уже по второму столбцу.
  • Несколько слов сразу. Вместо нескольких запусков используйте список слов — это одно условие «любое из списка».
  • Все условия одновременно (И). Если удалить нужно только строки, где выполнены сразу оба условия, удобнее вспомогательный столбец с функцией И и фильтр по ИСТИНА: процедуры надстройки удаляют по каждому условию отдельно.

Кстати, если строки по нескольким условиям нужно не удалить, а найти и отметить, смотрите статью о поиске по нескольким условиям.

Почему удалились не те строки — частые ошибки

  • Удалилась строка заголовка. Заголовок попал в выделение и подошёл под условие: «Запрос» не содержит цифр. Начинайте выделение со второй строки.
  • Пропали данные соседней таблицы. Удаляется вся строка листа. Перенесите другие таблицы на отдельный лист или ниже обрабатываемой.
  • Удалились пустые строки, хотя не просили. «Нет латиницы», «нет цифр» и «длина меньше N» верны и для пустой ячейки. Если пустые строки нужно сохранить, заполните пустые ячейки временной заглушкой, которая не подходит под условие (для «нет цифр» — 0), а после удаления очистите её.
  • Слово есть, а строка не удалилась. К слову приклеен знак препинания или оно стоит в другой форме: «оптом» — не «опт». Включите «Игнорировать пунктуацию» или добавьте нужные словоформы в список.
  • Удалилось не то и нужно вернуть. Отмена не вернёт удалённые строки — только сохранённая копия файла. Поэтому сначала сохраните файл.

Удаление строк по условию — частые вопросы

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

Фильтром: отберите строки по условию, выделите их и выберите «Главная → Удалить → Удалить строки с листа». Или процедурой !SEMTools по выделенному столбцу.

Как удалить строки, содержащие определённое слово?

Фильтр → «Текстовые фильтры → Содержит», затем удалить видимые строки. Целое слово, а не фрагмент, удаляет процедура !SEMTools «Если ячейка содержит → Одно слово».

Как удалить строки по списку минус-слов?

Процедурой !SEMTools «Если ячейка содержит → Слова → Любое из списка» — укажите диапазон со списком.

Можно ли отменить удаление строк?

После фильтра — да, Ctrl+Z работает. После макросов и процедур надстройки — нет, поэтому сохраняйте файл перед удалением.

Удалить строки таблицы Excel по условию — по латинице, цифрам, словам, списку минус-слов или длине текста — можно за пару кликов прямо на листе, без фильтров и формул. Процедуры доступны даже в бесплатной версии !SEMTools.

Итоги: как быстрее удалить строки по условию

Надеюсь, на этой странице вы нашли то, что искали, и смогли удалить лишние строки из таблицы. Фильтр подойдёт для разового простого условия вроде «содержит слово». Для латиницы, цифр, длины текста и списков слов он требует вспомогательных формул, а с !SEMTools достаточно выделить столбец и выбрать условие в меню, даже если условий несколько. Вас наверняка заинтересуют и похожие операции: удалить из текста список слов, не трогая строки, и удалить дубликаты без смещения строк.