Работа с текстом в 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).
Для удаления текста в одной ячейке можно дважды кликнуть по ней и вручную стереть ненужные символы. Этот способ подходит для точечных правок, но неэффективен при работе с большими массивами данных.
2. Удаление текста с сохранением чисел
Частая задача — очистить ячейки от текста, оставив только числовые значения. Например, если у вас есть данные в формате "100 кг", "50 шт." или "Цена: 2000 руб.", и нужно извлечь только числа.
Самый надёжный способ — использовать функцию VALUE в комбинации с Найти и заменить:
- Добавьте вспомогательный столбец рядом с исходными данными.
- Введите формулу:
=VALUE(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;" руб.";"");" кг";"");" шт.";"")))Эта формула последовательно удаляет текстовые постфиксы и преобразует результат в число.
- Скопируйте значения из вспомогательного столбца и вставьте их поверх исходных данных с помощью
Специальная вставка → Значения.
Альтернативный метод — разделение по столбцам:
- 🔍 Выделите столбец с данными → вкладка
Данные→Текст по столбцам. - 📑 Выберите
С разделителями→ укажите пробел или другой разделитель (например, двоеточие в"Цена: 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
Чтобы использовать её:
- Нажмите
Alt + F11→Insert → Module→ вставьте код. - Вернитесь в 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;"Ошибка")) нельзя удалить стандартными методами. Вам нужно:
- Найти все ячейки с формулами (
Найти → ФормулывПараметры поиска). - Вручную отредактировать формулы или заменить текстовые части через
Ctrl + H(например, заменить;"Ошибка"на;"").
Можно ли отменить массовое удаление текста?
Да, если вы не сохраняли файл после изменений. Используйте Ctrl + Z или панель Журнал изменений (Рецензирование → Журнал изменений). Если файл сохранён, восстановить данные можно только из резервной копии или через Версии (в Excel 365).