Работа с текстовыми данными в Microsoft Excel часто требует не только анализа, но и трансформации строк. Возможно, вам нужно удалить первые три символа в артикулах товаров, обрезать доменную часть email-адресов или извлечь фамилию из полного ФИО. Вручную редактировать тысячи ячеек — нерационально, поэтому сегодня разберём 7 проверенных способов, как вырезать часть слова в Excel автоматически.
Многие пользователи ошибочно полагают, что для таких задач требуются макросы или глубокие знания программирования. На деле же достаточно стандартных функций программы — от базовых ЛЕВСИМВ/ПРАВСИМВ до комбинаций с ПОИСК, НАЙТИ и ПСТР. В этой статье вы найдёте пошаговые инструкции с визуальными примерами, типичные ошибки новичков и уникальные лайфхаки, которые сэкономят часы работы.
1. Базовые функции: ЛЕВСИМВ, ПРАВСИМВ и СЖПРОБЕЛЫ
Начнём с самого простого — встроенных функций для обрезки текста с начала или конца строки. Эти инструменты подойдут, если вам нужно удалить фиксированное количество символов, например, префиксы в номерах документов или суффиксы в кодах товаров.
Функция ЛЕВСИМВ(текст; [количество_знаков]) возвращает заданное количество символов слева, а ПРАВСИМВ — справа. Если второй аргумент опустить, Excel вернёт весь текст. Например, чтобы из строки "Инв-2026-001" получить только год, используйте:
=ПРАВСИМВ(A1;4)
А что делать, если в ячейке лишние пробелы? Функция СЖПРОБЕЛЫ(текст) удаляет все пробелы, кроме одиночных между словами. Это полезно перед обрезкой, чтобы избежать ошибок с подсчётом символов. Комбинируйте её с ЛЕВСИМВ/ПРАВСИМВ:
=ЛЕВСИМВ(СЖПРОБЕЛЫ(A1); 10)
- ✅ Плюсы: простота, не требует знания сложных формул
- ❌ Минусы: работает только с фиксированным количеством символов
- 🔄 Альтернатива: для динамической обрезки используйте
ПОИСК+ПСТР(разберём далее)
⚠️ Внимание: Если в аргументе[количество_знаков]указать значение больше длины текста, Excel вернёт ошибку#ЗНАЧ!. Всегда проверяйте длину строки функциейДЛСТР(A1)перед обрезкой.
2. Функция ПСТР: вырезание фрагмента по позиции
Когда нужно извлечь часть слова из середины строки, на помощь придёт ПСТР(текст; начальная_позиция; количество_знаков). Например, из email "user@example.com" вытащить домен "example":
=ПСТР(A1; 6; 7)
Но как быть, если позиции символов заранее неизвестны? Здесь поможет комбинация с ПОИСК или НАЙТИ. Допустим, в ячейке фамилия и инициалы ("Иванов И.П."), а нужно оставить только фамилию:
=ПСТР(A1; 1; ПОИСК(" "; A1)-1)
Функция ПОИСК находит позицию пробела, а ПСТР извлекает все символы до него. Важно: ПОИСК учитывает регистр, а НАЙТИ — нет. Для точного поиска используйте НАЙТИ.
| Функция | Синтаксис | Пример использования | Результат для "Excel2026" |
|---|---|---|---|
ЛЕВСИМВ | =ЛЕВСИМВ(A1; 5) | Извлечь первые 5 символов | "Excel" |
ПРАВСИМВ | =ПРАВСИМВ(A1; 4) | Извлечь последние 4 символа | "2026" |
ПСТР | =ПСТР(A1; 6; 4) | Извлечь 4 символа с 6-й позиции | "2026" |
ПОИСК | =ПОИСК("2"; A1) | Найти позицию цифры "2" | 6 |
Убедиться, что в данных нет лишних пробелов (использовать СЖПРОБЕЛЫ)
Определить фиксированное или динамическое количество удаляемых символов
Проверить наличие разделителей (пробелов, тире, точек) для функций ПОИСК/НАЙТИ
Создать резервную копию данных перед массовыми изменениями-->
3. Динамическая обрезка: комбинация ПОИСК + ПСТР
Разберём реальный кейс: в столбце A хранятся адреса сайтов ("https://example.com/page"), а нужно извлечь только домен ("example.com"). Здесь фиксированное количество символов не подойдёт — длины доменов разные. Решение:
=ПСТР(A1; ПОИСК("://"; A1)+3; ПОИСК("/"; A1; ПОИСК("://"; A1)+3) - (ПОИСК("://"; A1)+3))
Разберём формулу по шагам:
ПОИСК("://"; A1)находит позицию://(обычно 8 дляhttps://)+3сдвигает позицию на 3 символа вправо (после://)- Второй
ПОИСК("/";...)ищет следующий слеш после домена ПСТРизвлекает текст между этими позициями
Аналогично можно вытащить имя файла из пути "C:\Users\Doc.xlsx":
=ПСТР(A1; ПОИСК("\"; A1; ПОИСК("\"; A1; 1)+1)+1; ДЛСТР(A1))
⚠️ Внимание: Если в строке нет искомого символа (например, слеша в пути), функцияПОИСКвернёт ошибку#ЗНАЧ!. ИспользуйтеЕЧИСЛО(ПОИСК(...))для проверки перед обрезкой.
Как обрезать текст до последнего пробела?
Используйте комбинацию ЛЕВСИМВ + ПОИСК с поиском пробела "с конца":
=ЛЕВСИМВ(A1; ПОИСК("♦"; ПОДСТАВИТЬ(A1; " "; "♦"; ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1; " "; ""))))-1)
Здесь мы заменяем последний пробел на уникальный символ ♦, находим его позицию и обрезаем строку до неё.
4. Функция ЗАМЕНИТЬ для удаления фрагментов
Если нужно удалить определённую часть слова (а не извлечь), подойдёт функция ЗАМЕНИТЬ(текст; начальная_позиция; количество_знаков; новый_текст). Например, удалить префикс "Товар-" из артикулов:
=ЗАМЕНИТЬ(A1; 1; 6; "")
Для динамического удаления используйте ПОИСК. Допустим, в ячейке текст "Цена: 1000 руб.", а нужно оставить только цифры:
=ЗАМЕНИТЬ(A1; 1; ПОИСК(" "; A1); "")
Затем обрежьте " руб." функцией ПРАВСИМВ с отрицательным смещением.
Ключевое отличие ЗАМЕНИТЬ от ПОДСТАВИТЬ: первая работает с позициями, вторая — с конкретным текстом. Например, чтобы удалить все дефисы в строке:
=ПОДСТАВИТЬ(A1; "-"; "")
Перейдите в Файл → Параметры → Надстройки → Перейти, выберите Надстройки Excel и создайте функцию УДАЛИТЬ_ДО(текст; символ), которая будет обрезать всё до указанного символа.-->
5. Продвинутые техники: регулярные выражения и Power Query
Для сложных задач (например, извлечение всех цифр из строки или удаление HTML-тегов) стандартных функций Excel недостаточно. Здесь поможет:
- 🔧 Power Query: инструмент
Текст → Извлечь → Текст после/до разделителяпозволяет обрезать строки без формул. Подходит для одноразовых операций с большими данными. - 📝 Регулярные выражения: в Excel 365 появилась функция
ТЕКСТПОСЛЕ/ТЕКСТДО, поддерживающая regex. Пример: извлечь все цифры из строки:=ТЕКСТПОСЛЕ(ПОДСТАВИТЬ(A1; ТЕКСТДО(A1; "[0-9]"; ""; 1; 1; 1); ""); "") - 🤖 VBA: для автоматизации создайте макрос с циклом по ячейкам и методом
ReplaceилиMid.
Важно: функции ТЕКСТПОСЛЕ/ТЕКСТДО доступны только в Excel 365 и Excel 2021. В старых версиях используйте комбинации ПОИСК + ПСТР или Power Query.
6. Типичные ошибки и как их избежать
Даже опытные пользователи сталкиваются с проблемами при обрезке текста. Вот самые распространённые:
- Ошибка #ЗНАЧ! при использовании
ПОИСК: возникает, если искомый символ отсутствует. Решение — проверяйте наличие символа функциейЕЧИСЛО(ПОИСК(...)). - Неправильный подсчёт позиций: помните, что
ПСТРиПОИСКсчитают пробелы и знаки препинания. ИспользуйтеСЖПРОБЕЛЫдля очистки данных. - Обрезка многобайтовых символов (кириллица, иероглифы): функции
ЛЕВСИМВ/ПРАВСИМВсчитают байты, а не символы. Для кириллицы используйтеДЛСТРБвместоДЛСТР.
Пример корректной работы с кириллицей (удалить первые 3 символа в слове "Привет"):
=ПРАВСИМВ(A1; ДЛСТРБ(A1)-ДЛСТРБ(ЛЕВСИМВ(A1; 3)))
⚠️ Внимание: В Excel для Mac функцииДЛСТРБиЛЕВСИМВБ/ПРАВСИМВБмогут работать иначе, чем в Windows. Тестируйте формулы на небольшом диапазоне перед массовым применением.
7. Автоматизация: запись макроса для повторяющихся задач
Если вам регулярно приходится обрезать одни и те же фрагменты (например, очищать импортированные данные), запишите макрос:
- Перейдите на вкладку
Вид → Макросы → Записать макрос. - Выделите ячейку с формулой обрезки (например,
=ПРАВСИМВ(A1;4)). - Скопируйте её и вставьте как значения (
Правка → Специальная вставка → Значения). - Остановите запись макроса и назначьте ему сочетание клавиш.
Для более гибкой автоматизации отредактируйте код VBA:
Sub ObrezatTekst()
Dim rng As Range
For Each rng In Selection
If rng.Value Like "Товар-*" Then
rng.Value = Right(rng.Value, Len(rng.Value) - 6)
End If
Next rng
End Sub
Этот макрос удаляет префикс "Товар-" (6 символов) во всех выделенных ячейках.
Для обработки больших таблиц (10 000+ строк) отключите обновление экрана в начале макроса:
Application.ScreenUpdating = False
FAQ: Ответы на частые вопросы
Как обрезать текст до последнего символа (например, точки или запятой)?
Используйте комбинацию ЛЕВСИМВ + ПОИСК с поиском символа "с конца". Для точки:
=ЛЕВСИМВ(A1; ПОИСК("."; A1 & "."; ДЛСТР(A1))-1)
Добавление "." к исходному тексту (A1 & ".") гарантирует, что функция найдёт точку даже если она последняя в строке.
Можно ли обрезать текст без формул, вручную?
Да, есть 3 способа:
- Текст по столбцам: выделите данные →
Данные → Текст по столбцам→ укажите разделитель (пробел, запятая и т.д.). - Найти и заменить:
Ctrl+H→ в поле "Найти" введите удаляемый фрагмент, поле "Заменить на" оставьте пустым. - Фlash Fill: введите желаемый результат в соседнем столбце и нажмите
Ctrl+E.
Почему функция ПСТР возвращает #ЗНАЧ!?
Ошибка возникает в трёх случаях:
- Начальная позиция (
2-й аргумент) больше длины текста. - Количество знаков (
3-й аргумент) отрицательное. - Ячейка содержит ошибку (например, #ДЕЛ/0!).
Проверьте аргументы функцией ЕОШИБКА:
=ЕСЛИ(ЕОШИБКА(ПСТР(A1;5;3)); "Ошибка"; ПСТР(A1;5;3))
Как обрезать текст в Excel Online?
В веб-версии Excel доступны все те же функции (ЛЕВСИМВ, ПСТР и т.д.), но нет Power Query и возможности записывать макросы. Для сложных задач импортируйте данные в настольную версию или используйте Google Таблицы с функцией REGEXEXTRACT.
Можно ли обрезать текст по условию (например, если строка начинается с определённых символов)?
Да, комбинируйте обрезку с функцией ЕСЛИ. Пример: если строка начинается с "ID_", удалить первые 3 символа:
=ЕСЛИ(ЛЕВСИМВ(A1;3)="ID_"; ПРАВСИМВ(A1; ДЛСТР(A1)-3); A1)
Для нескольких условий используйте ЕСЛИМН (Excel 365) или вложенные ЕСЛИ.