Гид по технологиям

Как вычитать текст в Excel

• 7 min read • Excel • Обновлено 26 Nov 2025
Вычитание текста в Excel: SUBSTITUTE и REPLACE
Вычитание текста в Excel: SUBSTITUTE и REPLACE

Обложка: вычитание текста в Excel

Зачем и когда вычитать текст

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

Ключевые понятия в одну строку:

  • SUBSTITUTE — ищет подстроки и заменяет их (по умолчанию чувствителен к регистру).
  • REPLACE — заменяет участок текста по позиции и длине.
  • SEARCH — находит позицию подстроки нечувствительно к регистру.
  • LEN — возвращает длину строки в символах.
  • TRIM — удаляет лишние пробелы слева/справа и дублирующие пробелы между словами.

Основные варианты (одна строка с намерением)

Primary intent: вычесть одну текстовую строку из другой. Связанные варианты: удалить подстроку, удалить все вхождения, удалить только первое вхождение, удалить нечувствительно к регистру, заменить по позиции, массовая очистка.

Чувствительное к регистру вычитание — SUBSTITUTE + TRIM

Идея: заменить целевую подстроку на пустую строку — это «вычитание». SUBSTITUTE при этом по умолчанию учитывает регистр.

Простой синтаксис:

=TRIM(SUBSTITUTE(target_cell, text_to_remove, ""))

Пример шага за шагом:

  1. Пусть в A1 записано: “This is wrong word”.
  2. В B1 — слово, которое нужно удалить: “wrong”.
  3. В D1 введите формулу:
=TRIM(SUBSTITUTE(A1, B1, ""))
  1. Нажмите Enter. Результат: “This is word” с нормализованными пробелами.

Важно:

  • SUBSTITUTE удалит все вхождения указанной подстроки в ячейке A1. Если нужно удалить только конкретный экземпляр, у функции есть необязательный 4-й аргумент instance_num (номер вхождения).
  • SUBSTITUTE чувствителен к регистру: “Word” и “word” — разные строки.

Применение SUBSTITUTE для вычитания текста в Excel

Нечувствительное к регистру вычитание — REPLACE + SEARCH + LEN + TRIM

Если нужно игнорировать регистр при поиске подстроки, используйте SEARCH (нечувствителен к регистру) для определения позиции и LEN для длины. Затем REPLACE удаляет текст по позиции.

Формула:

=TRIM(REPLACE(A1, SEARCH(B1, A1), LEN(B1), ""))

Как это работает:

  • SEARCH(B1, A1) возвращает позицию первого символа вхождения B1 в A1, игнорируя регистр.
  • LEN(B1) — длина удаляемой подстроки.
  • REPLACE заменяет участок текста, начиная с найденной позиции и длиной LEN(B1), на пустую строку.
  • TRIM убирает лишние пробелы.

Пример:

  1. A1: “This is Wrong word”.
  2. B1: “wrong”.
  3. Формула в D1 удалит “Wrong” независимо от регистра и вернёт “This is word”.

Использование REPLACE для вычитания текста в Excel

Частые сценарии и как их решить

  1. Удалить только первое вхождение: для чувствительного поиска используйте 4-й аргумент SUBSTITUTE — instance_num. Пример:
=TRIM(SUBSTITUTE(A1, B1, "", 1))
  1. Удалить последнее вхождение: Для этого можно применять сочетания с обратной строкой или использовать сложную формулу с FIND и SUBSTITUTE, либо Power Query/VBA.

  2. Удалить все варианты регистра: либо REPLACE+SEARCH, либо преобразовать обе строки к одному регистру (UPPER или LOWER) и затем SUBSTITUTE. Пример с предварительным приведением к верхнему регистру:

=TRIM(SUBSTITUTE(UPPER(A1), UPPER(B1), ""))

Примечание: этот метод уничтожит исходный регистр текста — используйте его, только если регистр не важен.

  1. Удалить по регулярному выражению (Office 365 / Excel с поддержкой REGEX):
=TRIM(REGEXREPLACE(A1, "текст_или_шаблон", ""))

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

  1. Массовая очистка столбца: используйте Power Query (Получить и преобразовать данные) — там можно применить шагы Replace Values или написать M-скрипт для удаления подстрок, либо написать макрос VBA для пакетной обработки.

Альтернативные подходы (когда формулы неудобны)

  • Flash Fill (Заполнение по образцу): работает быстро для простых паттернов, но не всегда воспроизводимо и не подходит для динамичных таблиц.
  • Find & Replace (Ctrl+H): удобно для разовых исправлений, не для автоматизации.
  • Power Query: лучший выбор для сложной, повторяемой очистки данных на уровне ETL.
  • VBA: если требуется гибкость и массовая обработка с возможностью логирования и отката.

Пример простого VBA-скрипта для удаления подстроки из выбранных ячеек:

Sub RemoveSubstring()
  Dim rng As Range, cell As Range, sub As String
  sub = InputBox("Введите подстроку для удаления:")
  On Error Resume Next
  Set rng = Application.Selection
  For Each cell In rng
    If Not IsError(cell) Then
      If Len(cell.Value) > 0 Then cell.Value = Trim(Replace(cell.Value, sub, ""))
    End If
  Next cell
End Sub

Кратко: этот макрос предложит ввести подстроку и удалит её во всех выбранных ячейках, затем уберёт лишние пробелы.

Когда предложенные формулы не сработают (подводные камни)

  • Пересекающиеся или вложенные подстроки: если нужно удалить “ana” из “banana”, стандартные методы удалят все вхождения, но порядок и количество удалений могут влиять на результат.
  • Разные варианты пробелов и разделителей: иногда между словами есть неразрывный пробел (NBSP), табуляция или множественные пробелы — TRIM не убирает NBSP; используйте CLEAN, SUBSTITUTE(CHAR(160), “ “) и т. п.
  • Регистрозависимость: SUBSTITUTE чувствителен к регистру, FIND — тоже чувствителен, SEARCH — нет.
  • Сохранение регистра: методы, которые приводят текст к одному регистру, меняют исходный формат и могут быть неприемлемы.
  • Множественные одинаковые вхождения: если нужно удалить только одно определённое вхождение (например, второе), требуется дополнительная логика.

Ментальные модели и эвристики

  • “Строка как контейнер символов”: либо вы ищете подстроку (позиция + длина), либо вы её ищете и заменяете по совпадению.
  • “Замена vs позиция”: SUBSTITUTE опирается на совпадение содержимого, REPLACE — на позицию. Для нечувствительного поиска комбинируйте SEARCH (позиция) и REPLACE.
  • “Удалить все vs одно”: уточняйте задачу — нужно ли убрать все вхождения или только первое/конкретное?

Критерии приёмки

  • Функция корректно удаляет целевую подстроку при тестовых данных (см. тест-кейсы ниже).
  • Пробелы справа и слева нормализованы (использован TRIM или эквивалент).
  • Регистр учитывается или игнорируется в соответствии с требованием задачи.
  • Если требуется — решение применимо к столбцу целиком и воспроизводимо.

Тест-кейсы и контроль качества

  1. Простое вхождение:
    • A1: “Hello world”, B1: “world” → ожидаемый: “Hello”.
  2. Вхождение с разными регистрами:
    • A1: “Hello World”, B1: “world” → метод с SUBSTITUTE должен оставить без изменений; метод SEARCH+REPLACE удалит.
  3. Множественные вхождения:
    • A1: “one one one”, B1: “one” → ожидаемый при удалении всех: пустая строка (после TRIM).
  4. Вложенные вхождения:
    • A1: “banana”, B1: “ana” → убедиться, что удаление происходит ожидаемым способом.
  5. Пробелы и спецсимволы:
    • A1 содержит NBSP (CHAR(160)), проверить замену и нормализацию пробелов.

Чеклисты по ролям

Data Analyst:

  • Проверить требования к регистру.
  • Прототип в одной колонке.
  • Написать тест-кейсы на граничные случаи.
  • Поставить автоматизацию (Power Query или макрос) для ETL.

Офисный пользователь:

  • Попробовать SUBSTITUTE для простых задач.
  • Использовать Find & Replace для единичных правок.
  • Сделать резервную копию данных перед массовыми заменами.

Разработчик / BI-инженер:

  • Реализовать Power Query шаги или VBA для повторяемости.
  • Логировать изменения и обеспечивать откат.

QA / тестировщик:

  • Подготовить набор входных данных (см. тест-кейсы).
  • Проверить поведение при пустых ячейках и ошибках данных.

Примеры «на практике» и шаблоны

Удалить префикс “OLD_” во всех значениях столбца A (формула в соседней колонке):

=IF(LEFT(A2,4) = "OLD_", MID(A2,5, LEN(A2)-4), A2)

Удалить строку, заключенную в скобки (регуляркой, Office 365):

=TRIM(REGEXREPLACE(A1, "\s*\([^)]*\)", ""))

Заменить неразрывный пробел на обычный и убрать двойные пробелы:

=TRIM(SUBSTITUTE(A1, CHAR(160), " "))

Безопасность и приватность

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

Итог и рекомендации

Substitute + Trim — быстрый способ для чувствительного к регистру удаления подстроки. Для нечувствительных задач используйте комбинацию Search + Replace или преобразование регистра. Для сложных паттернов рассмотрите REGEXREPLACE, Power Query или VBA. Всегда тестируйте на примерах и делайте резервные копии.

Важно: перед массовыми операциями выполните тесты на репрезентативной выборке и сохраните исходные данные.

Краткое резюме:

  • SUBSTITUTE подходит для простых, регистрозависимых удалений.
  • REPLACE+SEARCH подходит для регистронеучитывающего удаления по позиции.
  • REGEXREPLACE, Power Query и VBA — для сложных или повторяемых задач.

1-строчное определение терминов (глоссарий):

  • SUBSTITUTE — функция замены подстроки по совпадению.
  • REPLACE — функция замены по стартовой позиции и длине.
  • SEARCH — поиск подстроки без учёта регистра.
  • LEN — длина строки.
  • TRIM — удаление лишних пробелов.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро