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

Удалить содержимое ячеек по условию в Excel формулой можно так: в соседнем столбце =ЕСЛИ(ЕЧИСЛО(ПОИСК("тест";A2));"";A2) оставит пустыми ячейки с нужным фрагментом и перенесёт остальные, а =ЕСЛИ(СЧЁТЕСЛИ($A$2:A2;A2)>1;"";A2) очистит повторы, не сдвигая строки. Затем результат вставляют поверх исходного столбца как значения. Ниже — формула под каждое условие.

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

Удалить ячейки в Excel
Меню "Удалить ячейки" в группе УДАЛИТЬ на панели !SEMTools

Рекомендуется не рубить с плеча и не удалять ячейки сразу же, а сначала воспользоваться аналогичными макросами "Обнаружить ячейки" и "Извлечь ячейки", чтобы, соответственно, найти и посмотреть на те данные, которые предстоит удалить.

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

Удаление ячеек по их содержимому

Ячейки можно удалять в зависимости от того, что они содержат. Это могут быть слова, последовательности символов. Последовательности можно выражать как простой подстрокой, так и регулярным выражением. Для каждого из случаев в надстройке предусмотрен свой инструмент.

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

  • По условию вхождения в ячейки определенных слов:
    • Удалить → Ячейки → Содержащие слово
    • Удалить → Ячейки → Содержащие слова — любое из списка
    Очистить ячейки со словом
    B2=ЕСЛИ(ЕЧИСЛО(ПОИСК(" аренда ";" "&A2&" "));"";A2)
    AB
    1ЗначениеРезультат
    2аренда квартиры=ЕСЛИ(ЕЧИСЛО(ПОИСК(" аренда ";" "&A2&" "));"";A2)
    3арендаторарендатор=ЕСЛИ(ЕЧИСЛО(ПОИСК(" аренда ";" "&A3&" "));"";A3)
    4продажапродажа=ЕСЛИ(ЕЧИСЛО(ПОИСК(" аренда ";" "&A4&" "));"";A4)

    Пробелы вокруг слова: «арендатор» не считается словом «аренда» и остаётся.

    В английском Excel: =IF(ISNUMBER(SEARCH(" аренда "," "&A2&" ")),"",A2)

Удалить ячейки по паттернам (вхождению подстрок)

  • По условию простого вхождения паттернов:
    • Содержащие …
    • Начинающиеся с …
    • Заканчивающиеся на …
    Начинается с … или заканчивается на …
    B2=ЕСЛИ(ЛЕВСИМВ(A2;4)="тест";"";A2)
    ABC
    1ФайлБез начинающихся с «тест»Без оканчивающихся на .tmp
    2тест_отчёт.xlsx=ЕСЛИ(ЛЕВСИМВ(A2;4)="тест";"";A2)тест_отчёт.xlsx=ЕСЛИ(ПРАВСИМВ(A2;4)=".tmp";"";A2)
    3итог.tmpитог.tmp=ЕСЛИ(ЛЕВСИМВ(A3;4)="тест";"";A3)=ЕСЛИ(ПРАВСИМВ(A3;4)=".tmp";"";A3)
    4план.docxплан.docx=ЕСЛИ(ЛЕВСИМВ(A4;4)="тест";"";A4)план.docx=ЕСЛИ(ПРАВСИМВ(A4;4)=".tmp";"";A4)

    Число в ЛЕВСИМВ и ПРАВСИМВ — длина фрагмента. Сравнение через «=» не различает регистр.

    В английском Excel: =IF(LEFT(A2,4)="тест","",A2)

Удалить ячейки по регулярному выражению

  • Иногда простых паттернов может не быть достаточно, тогда пригодится удаление ячеек по соответствию регулярному выражению.
Очистить ячейки по регулярному выражению
B2=ЕСЛИ(REGEXMATCH(A2;"^\d+$");"";A2)
AB
1ЗначениеБез ячеек из одних цифр
212345=ЕСЛИ(REGEXMATCH(A2;"^\d+$");"";A2)
3SKU-12345SKU-12345=ЕСЛИ(REGEXMATCH(A3;"^\d+$");"";A3)
42026 год2026 год=ЕСЛИ(REGEXMATCH(A4;"^\d+$");"";A4)

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

Удаление повторяющихся ячеек

Если значение ячейки не является уникальным, такую ячейку обычно следует удалить. Но сценариев такого удаления несколько.

Удалить дубликаты ячеек

!SEMTools позволяет:

Удалить дубли без смещения строк
B4=ЕСЛИ(СЧЁТЕСЛИ($A$2:A4;A4)>1;"";A4)
AB
1ГородБез повторов
2МоскваМосква=ЕСЛИ(СЧЁТЕСЛИ($A$2:A2;A2)>1;"";A2)
3КазаньКазань=ЕСЛИ(СЧЁТЕСЛИ($A$2:A3;A3)>1;"";A3)
4Москва=ЕСЛИ(СЧЁТЕСЛИ($A$2:A4;A4)>1;"";A4)
5ТулаТула=ЕСЛИ(СЧЁТЕСЛИ($A$2:A5;A5)>1;"";A5)
6Казань=ЕСЛИ(СЧЁТЕСЛИ($A$2:A6;A6)>1;"";A6)

Диапазон $A$2:A4 растёт вместе со строкой, поэтому первое вхождение остаётся, а повторы очищаются. Строки не сдвигаются. Подробнее — дубли без смещения.

В английском Excel: =IF(COUNTIF($A$2:A2,A2)>1,"",A2)

Удалить один список из другого
B2=ЕСЛИ(СЧЁТЕСЛИ($D$2:$D$3;A2)>0;"";A2)
ABCD
1ЗначениеРезультатИсключить
2МоскваМосква=ЕСЛИ(СЧЁТЕСЛИ($D$2:$D$3;A2)>0;"";A2)Казань
3Казань=ЕСЛИ(СЧЁТЕСЛИ($D$2:$D$3;A3)>0;"";A3)Самара
4ТулаТула=ЕСЛИ(СЧЁТЕСЛИ($D$2:$D$3;A4)>0;"";A4)
5Самара=ЕСЛИ(СЧЁТЕСЛИ($D$2:$D$3;A5)>0;"";A5)

Очищаются ячейки, которые есть во втором списке (D2:D3). Сравнение не различает регистр.

В английском Excel: =IF(COUNTIF($D$2:$D$3,A2)>0,"",A2)

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

  • Редкая задача — удалить ячейки в зависимости от их встречаемости в столбце:
    • удалить дубли включая первый
    • удалить уникальные (не повторяющиеся) ячейки
    Удалить повторы вместе с первым или уникальные
    B2=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A$6;A2)>1;"";A2)
    ABC
    1ГородБез всех повторяющихсяБез уникальных
    2Москва=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A$6;A2)>1;"";A2)Москва=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A$6;A2)=1;"";A2)
    3Казань=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A$6;A3)>1;"";A3)Казань=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A$6;A3)=1;"";A3)
    4Москва=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A$6;A4)>1;"";A4)Москва=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A$6;A4)=1;"";A4)
    5ТулаТула=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A$6;A5)>1;"";A5)=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A$6;A5)=1;"";A5)
    6Казань=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A$6;A6)>1;"";A6)Казань=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A$6;A6)=1;"";A6)

    Здесь диапазон закреплён целиком ($A$2:$A$6): формула видит, сколько раз значение встречается во всём столбце.

    В английском Excel: =IF(COUNTIF($A$2:$A$6,A2)>1,"",A2)


Дополнительные возможности удаления ячеек

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


Смотрите также:

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

Как удалить содержимое ячеек по условию?

Формулой ЕСЛИ в соседнем столбце: =ЕСЛИ(условие;"";A2), затем вставьте результат как значения. Без формул — «Найти все» в Ctrl+F, Ctrl+A в списке найденного и Delete.

Как удалить повторяющиеся значения, но оставить первое?

Формулой =ЕСЛИ(СЧЁТЕСЛИ($A$2:A2;A2)>1;"";A2) — строки не сдвигаются.

Как удалить из списка значения, которые есть в другом списке?

Формулой =ЕСЛИ(СЧЁТЕСЛИ($D$2:$D$100;A2)>0;"";A2) — D2:D100 — список исключений.

Чем удаление ячеек отличается от удаления строк?

Здесь очищается содержимое, а строка остаётся на месте. Чтобы убрать строки целиком, смотрите удалить строки и столбцы.

Удалить содержимое ячеек, содержащих слово, паттерн или регулярное выражение, а также дубли, уникальные значения и неявные повторы — прямо на месте — можно в пару кликов с !SEMTools.
!SEMTools решает эту и сотни других задач в пару кликов!

Итоги: как удалить ячейки по условию в Excel

УсловиеФормула
Содержит словоЕСЛИ(ЕЧИСЛО(ПОИСК(" слово ";" "&A2&" "));"";A2)
Начинается / заканчивается наЕСЛИ(ЛЕВСИМВ / ПРАВСИМВ(A2;N)="…";"";A2)
Регулярное выражениеЕСЛИ(REGEXMATCH(A2;"шаблон");"";A2)
Повторы, первое оставитьЕСЛИ(СЧЁТЕСЛИ($A$2:A2;A2)>1;"";A2)
Есть в другом спискеЕСЛИ(СЧЁТЕСЛИ(список;A2)>0;"";A2)

Надеюсь, на этой странице вы нашли то, что искали. Все формулы раздела устроены одинаково — ЕСЛИ с условием и пустой строкой, — а для регулярной чистки больших диапазонов быстрее процедуры УДАЛИТЬ → Ячейки.