Как убрать часть текста в ячейке Excel: от простых замен до сложных формул

Работа с текстовыми данными в Microsoft Excel часто требует не только анализа, но и редактирования содержимого ячеек. Удаление части текста — одна из самых востребованных операций, будь то очистка номера телефона от лишних символов, извлечение фамилии из полного ФИО или удаление префиксов в кодах товаров. Без знания правильных инструментов эта задача может занять часы ручного труда, особенно если речь идёт о тысячах строк.

В этой статье мы разберём 7 проверенных способов, как убрать ненужный фрагмент текста в ячейке — от элементарных функций ЗАМЕНИТЬ и ПСТР до продвинутых приёмов с регулярными выражениями и Power Query. Вы узнаете, какой метод выбрать для конкретной задачи, как автоматизировать процесс и избежать типичных ошибок. А для тех, кто работает с большими массивами данных, мы подготовили уникальный макрос на VBA, который удаляет текст по шаблону за секунды.

1. Простая замена: функция ЗАМЕНИТЬ и ПОДСТАВИТЬ

Если вам нужно удалить фиксированный фрагмент текста (например, префикс "+7" в номерах телефонов или слово "ООО" в названиях компаний), самые простые инструменты — функции ЗАМЕНИТЬ и ПОДСТАВИТЬ. Их ключевое отличие: ЗАМЕНИТЬ чувствительна к регистру, а ПОДСТАВИТЬ — нет.

Пример использования ЗАМЕНИТЬ для удаления префикса "+7" из номера телефона:

=ЗАМЕНИТЬ(A2; "+7"; "")
  • 📌 Плюсы: работает мгновенно, не требует дополнительных настроек.
  • ⚠️ Минусы: если фрагмент повторяется несколько раз, заменит только первое вхождение (для всех вхождений используйте ПОДСТАВИТЬ).
  • 🔄 Альтернатива: для удаления всех вхождений фрагмента используйте =ПОДСТАВИТЬ(A2; "ООО "; "").
⚠️ Внимание: Если вы удаляете символы в начале ячейки, проверьте, не остались ли после этого лишние пробелы. Используйте =СЖПРОБЕЛЫ(), чтобы очистить результат от двойных пробелов.
📊 Какой инструмент вы чаще используете для редактирования текста в Excel?
Функции (ЗАМЕНИТЬ, ПСТР и др.)
Найти и заменить (Ctrl+H)
Power Query
Макросы на VBA
Другой

2. Удаление текста по позиции: функции ПСТР, ЛЕВСИМВ и ПРАВСИМВ

Когда нужно удалить фрагмент текста с начала, конца или середины ячейки, пригодится семейство функций для работы с подстроками. Например, если в ячейке содержится код товара ABC-12345-XYZ, и вам нужны только цифры в середине, используйте комбинацию ПСТР с указанием начальной позиции и длины:

=ПСТР(A2; 5; 5)

Для удаления первых N символов подойдёт ПРАВСИМВ:

=ПРАВСИМВ(A2; ДЛСТР(A2)-3)

Эта формула удаляет 3 символа с начала ячейки.

Задача Функция Пример Результат для "Привет-мир!"
Удалить первые 3 символа ПРАВСИМВ =ПРАВСИМВ(A2;ДЛСТР(A2)-3) "ет-мир!"
Удалить последние 4 символа ЛЕВСИМВ =ЛЕВСИМВ(A2;ДЛСТР(A2)-4) "Привет-"
Оставить только символы с 4 по 7 ПСТР =ПСТР(A2;4;4) "ет-м"

Если вам нужно удалить текст до или после определённого символа (например, "@" в email или "-" в коде), комбинируйте ПСТР с НАЙТИ:

=ПРАВСИМВ(A2; ДЛСТР(A2)-НАЙТИ("@";A2))

Эта формула вернёт всё, что идёт после символа "@".

3. Инструмент "Найти и заменить" (Ctrl+H): быстрый способ без формул

Для одноразовых задач или работы с небольшими таблицами удобнее всего использовать встроенный инструмент "Найти и заменить" (Ctrl+H). Он позволяет:

  • 🔍 Удалять все вхождения текста (в отличие от ЗАМЕНИТЬ, которая заменяет только первое вхождение по умолчанию).
  • 📝 Работать с регулярными выражениями (в новых версиях Excel).
  • 🔄 Заменять текст с учётом или без учёта регистра.

Пример: чтобы удалить все дефисы в столбце с кодами товаров:

  1. Выделите диапазон ячеек.
  2. Нажмите Ctrl+H.
  3. В поле "Найти" введите -, поле "Заменить на" оставьте пустым.
  4. Нажмите "Заменить всё".
⚠️ Внимание: Инструмент "Найти и заменить" необратимо изменяет исходные данные. Всегда делайте резервную копию таблицы перед массовой заменой или используйте функцию ЗАМЕНИТЬ в отдельном столбце.

☑️ Подготовка к массовой замене текста

Выполнено: 0 / 4

4. Удаление текста по шаблону: Power Query для сложных задач

Если вам нужно удалить текст по сложному шаблону (например, все цифры, все символы после последнего пробела или текст в скобках), стандартные функции Excel могут не справиться. Здесь на помощь придёт Power Query — инструмент для преобразования данных, доступный в Excel 2016 и новее.

Пример: удаление всего текста в круглых скобках (включая сами скобки):

  1. Выделите диапазон и перейдите на вкладку Данные → Получить данные → Из таблицы/диапазона.
  2. В открывшемся редакторе Power Query выберите столбец → Преобразовать → Заменить значения.
  3. В поле "Найти" введите \(.*\) (регулярное выражение для текста в скобках), поле "Заменить на" оставьте пустым.
  4. Нажмите "ОК" и загрузите данные обратно в Excel.

Power Query поддерживает регулярные выражения, что позволяет удалять текст по гибким критериям:

  • 🔢 Удалить все цифры: [0-9]
  • 📛 Удалить все символы кроме букв: [^A-Za-zА-Яа-я]
  • 📌 Удалить текст после последнего пробела: .\s(.) → заменить на $1
Как включить регулярные выражения в Power Query?

В редакторе Power Query перейдите в Файл → Параметры → Региональные параметры и установите флажок "Использовать регулярные выражения при замене значений".

5. Макросы на VBA: автоматизация для повторяющихся задач

Если вам регулярно приходится удалять одни и те же фрагменты текста (например, очищать импортированные данные от мусора), стоит автоматизировать процесс с помощью VBA. Ниже приведён макрос, который удаляет все вхождения заданного текста в выделенном диапазоне:

Sub УдалитьТекст()

Dim rng As Range

Dim cell As Range

Dim textToRemove As String

' Задаём текст для удаления

textToRemove = InputBox("Введите текст для удаления:", "Удаление текста")

' Проверяем, выделен ли диапазон

On Error Resume Next

Set rng = Selection

On Error GoTo 0

If rng Is Nothing Then

MsgBox "Выделите диапазон ячеек!", vbExclamation

Exit Sub

End If

' Удаляем текст в каждой ячейке

For Each cell In rng

cell.Value = Replace(cell.Value, textToRemove, "")

Next cell

MsgBox "Готово! Удалено " & rng.Cells.Count & " ячеек.", vbInformation

End Sub

Чтобы использовать этот макрос:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Вернитесь в Excel, выделите диапазон и запустите макрос (Alt+F8 → УдалитьТекст).
  4. В появившемся окне введите текст, который нужно удалить.
⚠️ Внимание: Макросы отключают систему отмены (Ctrl+Z). Перед запуском сохраните файл или работайте с копией данных.

6. Удаление текста по условию: функции ЕСЛИ + ПОИСК

Иногда текст нужно удалять только при выполнении условия. Например, очистить ячейку от слова "Тест", если оно встречается в начале строки. Для этого комбинируйте ЕСЛИ с функциями поиска:

=ЕСЛИ(ЛЕВСИМВ(A2;4)="Тест"; ПРАВСИМВ(A2;ДЛСТР(A2)-4); A2)

Эта формула проверяет, начинается ли текст в ячейке A2 со слова "Тест", и если да — удаляет его.

Более гибкий вариант — проверка на наличие подстроки в любом месте ячейки:

=ЕСЛИ(ЕЧИСЛО(ПОИСК("ООО";A2)); ЗАМЕНИТЬ(A2;"ООО";""); A2)

Для удаления текста между двумя символами (например, между "[ ]") используйте комбинацию ПСТР и ПОИСК:

=ЕСЛИОШИБКА(

ЛЕВСИМВ(A2;ПОИСК("[";A2)-1) &

ПРАВСИМВ(A2;ДЛСТР(A2)-ПОИСК("]";A2));

A2)

7. Специальные случаи: удаление непечатаемых символов и пробелов

Иногда в ячейках скрываются невидимые символы (переносы строк, табуляции, неразрывные пробелы), которые мешают дальнейшей обработке данных. Чтобы их удалить:

  • 🔹 Удалить все пробелы: =ПОДСТАВИТЬ(A2;" "; "")
  • 🔹 Удалить неразрывные пробелы (Alt+0160): =ПОДСТАВИТЬ(A2;СИМВОЛ(160);"")
  • 🔹 Удалить переносы строк (Alt+Enter): =ПОДСТАВИТЬ(A2;СИМВОЛ(10);"")
  • 🔹 Очистить все непечатаемые символы: используйте Power Query с заменой по регулярному выражению [\r\n\t].

Для удаления лишних пробелов между словами (например, привести "Привет мир" к "Привет мир") используйте:

=СЖПРОБЕЛЫ(A2)
⚠️ Внимание: Функция СЖПРОБЕЛЫ удаляет только пробелы в начале/конце ячейки и сокращает несколько пробелов между словами до одного. Она не удаляет неразрывные пробелы (их код — 160).

FAQ: Частые вопросы по удалению текста в Excel

Как удалить все цифры из ячейки, оставив только буквы?

Используйте Power Query с заменой по регулярному выражению [0-9] на пустую строку. Альтернатива — формула массива (в новых версиях Excel):

=ТЕКСТСОЕДИНИТЬ("";ИСТИНА;ЕСЛИ(ЕОШИБКА(--ПСТР(A2;ПОСЛЕДОВАТ(ДЛСТР(A2));1));ПСТР(A2;ПОСЛЕДОВАТ(ДЛСТР(A2));1);""))

В старых версиях Excel эту формулу нужно вводить как Ctrl+Shift+Enter.

Можно ли удалить текст до/после последнего вхождения символа?

Да. Чтобы удалить всё до последнего дефиса:

=ПРАВСИМВ(A2;ДЛСТР(A2)-ПОИСК("-";A2;ПОИСК("-";A2;ПОИСК("-";A2)+1)+1))

Для текста после последнего дефиса:

=ПРАВСИМВ(A2;ДЛСТР(A2)-ПОИСК("-";ПОДСТАВИТЬ(A2;"-";"~";ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;"-";""))))+1)
Как удалить повторяющиеся слова в ячейке?

Используйте формулу с ТЕКСТРАЗД и ТЕКСТСОЕДИНИТЬ:

=ТЕКСТСОЕДИНИТЬ(" ";ИСТИНА;УНИК(ТЕКСТРАЗД(A2;" ")))

Эта формула работает в Excel 365 и 2021. Для старых версий потребуется макрос на VBA.

Почему функция ЗАМЕНИТЬ не удаляет текст?

Вероятные причины:

  1. В ячейке есть невидимые символы (пробелы, табуляции). Проверьте с помощью =КОДСИМВ(ЛЕВСИМВ(A2;1)).
  2. Текст для замены чувствителен к регистру (используйте ПОДСТАВИТЬ вместо ЗАМЕНИТЬ).
  3. Формат ячейки — не "Общий" или "Текстовый". Измените формат перед заменой.
Как удалить текст в ячейке, если он совпадает со значением другой ячейки?

Используйте формулу:

=ЕСЛИ(ЕЧИСЛО(ПОИСК(B2;A2)); ЗАМЕНИТЬ(A2;B2;""); A2)

Где A2 — ячейка с исходным текстом, B2 — ячейка с текстом для удаления.