Как удалить текст в Excel: полное руководство с примерами

Работа с текстом в Microsoft Excel — одна из самых частых задач, с которыми сталкиваются пользователи. Некорректные данные, лишние символы, дубликаты или просто устаревшая информация могут существенно усложнить анализ. Но как удалить текст в Excel, не затрагивая числовые значения, формулы или структуру таблицы? Способы варьируются от элементарных (вроде клавиши Delete) до сложных — с использованием Power Query или VBA-макросов.

Многие ошибочно полагают, что достаточно выделить ячейки и нажать Backspace, но это работает не всегда. Например, если текст смешан с числами ("Цена: 1000 руб."), или когда нужно удалить только часть содержимого (например, префиксы "ID-" перед номерами). В этой статье мы разберём 7 проверенных методов — от ручных до автоматизированных, — а также расскажем, как избежать типичных ошибок при очистке данных.

Особое внимание уделим случаям, когда текст скрыт в формулах (например, через функцию CONCATENATE) или когда данные импортированы из внешних источников с лишними разделителями. Вы узнаете, как удалить текст выборочно (только из определённых столбцов) или глобально (во всей книге), сохраняя при этом форматирование и ссылки.

1. Базовые способы: удаление текста вручную

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

Самый очевидный способ — выделить ячейки и нажать Delete или Backspace. Однако это удалит всё содержимое, включая числа и формулы. Чтобы удалить только текст, оставляя числа, используйте контекстное меню:

  • 📋 Выделите диапазон ячеек (например, A1:A10).
  • 🖱️ Правый клик → Очистить содержимоеОчистить только текст (в новых версиях Excel 365 этот пункт может отсутствовать, тогда используйте Найти и заменить).
  • ⚡ Если опция недоступна, нажмите Ctrl + H (замена), в поле Найти введите * (звёздочка), в поле Заменить на оставьте пустым, затем нажмите Заменить всё.
⚠️ Внимание: При использовании Очистить содержимое в Excel 2016 и старше текст удаляется вместе с числами. Чтобы сохранить числа, применяйте метод Найти и заменить с фильтром по формату (см. раздел 3).

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

📊 Какой версии Excel вы пользуетесь?
Excel 2010 или старше
Excel 2013-2019
Excel 365 (онлайн/десктоп)
LibreOffice Calc
Другой

2. Удаление текста с сохранением чисел

Частая задача — очистить ячейки от текста, оставив только числовые значения. Например, если у вас есть данные в формате "100 кг", "50 шт." или "Цена: 2000 руб.", и нужно извлечь только числа.

Самый надёжный способ — использовать функцию VALUE в комбинации с Найти и заменить:

  1. Добавьте вспомогательный столбец рядом с исходными данными.
  2. Введите формулу:
    =VALUE(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;" руб.";"");" кг";"");" шт.";"")))

    Эта формула последовательно удаляет текстовые постфиксы и преобразует результат в число.

  3. Скопируйте значения из вспомогательного столбца и вставьте их поверх исходных данных с помощью Специальная вставка → Значения.

Альтернативный метод — разделение по столбцам:

  • 🔍 Выделите столбец с данными → вкладка ДанныеТекст по столбцам.
  • 📑 Выберите С разделителями → укажите пробел или другой разделитель (например, двоеточие в "Цена: 2000").
  • ☑️ На шаге формата столбцов выберите для числового столбца формат Общий или Числовой.
⚠️ Внимание: Если в ячейке смешаны текст и числа без разделителей (например, "100kg"), разделение по столбцам не сработает. В этом случае используйте формулы с ЛЕВСИМВ, ПРАВСИМВ или регулярные выражения (в Power Query).

3. Удаление текста по условию (фильтрация)

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

Способ 1: Фильтр по значению

  • 🔍 Выделите диапазон → ДанныеФильтр.
  • 📊 Нажмите на стрелочку в заголовке столбца → Текстовые фильтрыСодержит (или Начинается с, Заканчивается на).
  • 🗑️ Введите условие (например, "устарело") → отфильтруйте данные → выделите видимые ячейки → нажмите Delete.

Способ 2: Найти и заменить с условием

Если текст имеет чёткую структуру (например, префикс "ID-"), используйте замену с подстановочными знаками:

  • 🔎 Нажмите Ctrl + H.
  • 📝 В поле Найти введите ID-* (звёздочка заменит любые символы после ID-).
  • 🚫 Поле Заменить на оставьте пустым → Заменить всё.
Метод Пример данных Результат Примечания
Фильтр + Delete "Старые данные", "Актуально" Удалены только "Старые данные" Работает для точного совпадения
Замена с * "ID-123", "ID-456" "123", "456" Удаляет префикс и всё после него
Формула ПОИСК + ПСТР "Цена: 1000 руб." "1000" Требует настройки для каждого случая
Как удалить текст с сохранением форматирования?

Если после удаления текста исчезло форматирование (цвет, границы), перед очисткой скопируйте ячейки, затем вставьте их поверх с параметром Форматы (через Специальная вставка).

4. Продвинутые методы: Power Query и VBA

Для обработки больших объёмов данных или сложных шаблонов (например, удаление текста между определёнными символами) используйте Power Query или VBA-макросы.

Power Query (доступен в Excel 2016+):

  • 📊 Выделите диапазон → ДанныеИз таблицы/диапазона (если данные не в таблице, преобразуйте их в неё через Ctrl + T).
  • 🔧 В редакторе Power Query выберите столбец → ПреобразоватьЗаменить значения.
  • 📝 Введите текст для удаления (или используйте ИзвлечьТекст после разделителя для сложных случаев).
  • 💾 Нажмите Закрыть и загрузить, чтобы применить изменения.

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

Sub DeleteTextFromCells()

Dim rng As Range

Dim cell As Range

Set rng = Selection

For Each cell In rng

If IsNumeric(Replace(cell.Value, ",", ".")) Then

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

Else

cell.Value = ""

End If

Next cell

End Sub

Этот макрос удаляет весь текст, оставляя только числа (включая дробные с запятой). Чтобы запустить его, нажмите Alt + F11, вставьте код в модуль и выполните через F5.

⚠️ Внимание: Макросы могут конфликтовать с защищёнными листами. Перед запуском снимите защиту через Рецензирование → Снять защиту листа.

5. Удаление непечатаемых символов и пробелов

При импорте данных из CSV, PDF или веб-страниц в ячейках часто остаются непечатаемые символы (табуляции, переносы строк, неразрывные пробелы). Они не видны, но мешают сортировке и анализу.

Чтобы удалить их:

  • 🧹 Используйте функцию СЖПРОБЕЛЫ:
    =СЖПРОБЕЛЫ(A1)

    Она удаляет лишние пробелы, включая неразрывные.

  • 🔍 Для удаления символов табуляции (Char(9)) и переводов строк (Char(10)) используйте ПОДСТАВИТЬ:
    =ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;СИМВОЛ(10);"");СИМВОЛ(9);"")
  • 📋 Для глобальной очистки выделите диапазон → Найти и заменить → в поле Найти вставьте Char(10) (нажмите Ctrl + J в поле ввода для символа переноса).

Важно: Символ Char(160) (неразрывный пробел) не удаляется стандартной функцией СЖПРОБЕЛЫ. Чтобы избавиться от него, используйте замену:

=ПОДСТАВИТЬ(A1;СИМВОЛ(160);" ")

Выделить диапазон данных|Применить функцию СЖПРОБЕЛЫ|Заменить Char(10) и Char(9)|Проверить результат через ЛЕН (длина строки до и после)

-->

6. Удаление текста в защищённых ячейках или листах

Если таблица защищена от изменений, стандартные методы удаления текста не сработают. В этом случае:

Способ 1: Временное снятие защиты

  • 🔓 Перейдите на вкладку РецензированиеСнять защиту листа.
  • 🔑 Введите пароль (если он установлен).
  • 🗑️ Удалите текст любым удобным методом (см. разделы 1–3).
  • 🔒 Верните защиту через Защитить лист.

Способ 2: Копирование данных в новый лист

Если у вас нет прав на снятие защиты:

  • 📋 Выделите защищённые ячейки → скопируйте их (Ctrl + C).
  • 📑 Создайте новый лист → вставьте данные через Специальная вставка → Значения.
  • 🧹 Очистите текст в новом листе (защита не переносится при копировании значений).
⚠️ Внимание: При копировании формул (не значений) в новый лист ссылки на ячейки могут нарушиться. Всегда проверяйте результаты через Проверка ошибок (Формулы → Проверка ошибок).

7. Автоматизация: создание пользовательской функции

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

Пример функции для удаления текста после последнего пробела (оставит только первое слово):

Function KeepFirstWord(rng As Range) As String

Dim str As String

str = rng.Value

If InStr(str, " ") > 0 Then

KeepFirstWord = Left(str, InStr(str, " ") - 1)

Else

KeepFirstWord = str

End If

End Function

Чтобы использовать её:

  1. Нажмите Alt + F11Insert → Module → вставьте код.
  2. Вернитесь в Excel и введите в ячейке:
    =KeepFirstWord(A1)

Для удаления текста между двумя символами (например, в строке "[ID:123] Имя" оставить только "123"):

Function ExtractBetween(rng As Range, startChar As String, endChar As String) As String

Dim str As String

str = rng.Value

Dim startPos As Integer, endPos As Integer

startPos = InStr(str, startChar) + Len(startChar)

endPos = InStr(startPos, str, endChar)

If startPos > 0 And endPos > 0 Then

ExtractBetween = Mid(str, startPos, endPos - startPos)

Else

ExtractBetween = ""

End If

End Function

Пример использования:

=ExtractBetween(A1; "[ID:"; "]")

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

Как удалить текст в ячейке, но оставить числа?

Используйте функцию VALUE в комбинации с ПОДСТАВИТЬ, чтобы удалить текстовые символы, или примените разделение по столбцам (см. раздел 2). Для автоматизации подходит макрос из раздела 4.

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

Да, с помощью VBA-макроса. Пример кода для удаления текста во всех листах:

Sub DeleteTextAllSheets()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

ws.Activate

Cells.Replace What:="*", Replacement:="", LookAt:=xlPart, _

SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _

ReplaceFormat:=False

Next ws

End Sub

⚠️ Этот макрос удалит всё содержимое ячеек, где есть текст. Для избирательной очистки модифицируйте условие в Cells.Replace.

Почему после удаления текста остаются пустые строки?

Это происходит, если в ячейках были непечатаемые символы (переносы строк, пробелы). Используйте функцию СЖПРОБЕЛЫ или замену Char(10) на пустую строку (см. раздел 5).

Как удалить текст в формулах (например, в ЕСЛИОШИБКА)?

Текст в формулах (например, =ЕСЛИОШИБКА(A1/B1;"Ошибка")) нельзя удалить стандартными методами. Вам нужно:

  1. Найти все ячейки с формулами (Найти → Формулы в Параметры поиска).
  2. Вручную отредактировать формулы или заменить текстовые части через Ctrl + H (например, заменить ;"Ошибка" на ;"").
Можно ли отменить массовое удаление текста?

Да, если вы не сохраняли файл после изменений. Используйте Ctrl + Z или панель Журнал изменений (Рецензирование → Журнал изменений). Если файл сохранён, восстановить данные можно только из резервной копии или через ВерсииExcel 365).