Удалить в Excel строки по условию: латиница, цифры, слова
Возможности !SEMTools
↑ Навигация по задачам в Excel и возможностям надстройки !SEMTools ↑

Процедуры из статьи доступны в бесплатной версии !SEMTools, Lite и Pro.

Как удалить строки таблицы 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 можно не удалять строки, а построить очищенную копию таблицы функцией ФИЛЬТР — но это уже новая таблица рядом, а не исходная.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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