Как извлечь текст из ячейки Excel: все работающие методы (2026)

Работа с текстовыми данными в Microsoft Excel часто требует не только ввода, но и грамотного извлечения информации из ячеек. Например, когда нужно отделить фамилию от имени, вытащить код товара из сложного артикула или удалить лишние символы перед анализом. В этой статье мы разберём 7 проверенных способов вывести текст из ячейки — от базовых функций до автоматизации через VBA, с учётом типичных ошибок и нюансов разных версий программы.

Особенность текста в Excel в том, что он может быть «спрятан» за формулами, объединён с числами или содержать невидимые символы (пробелы, переносы строк). Мы покажем, как точечно извлечь нужные фрагменты, избегая потери данных, и дадим готовые решения для распространённых задач: парсинг адресов, разделение ФИО, очистка импортированных данных.

Все методы протестированы на Excel 2019–2026 (включая Microsoft 365) и адаптированы для Excel Online. Если вы работаете с Google Таблицами, majority функций будут работать аналогично, но мы укажем на ключевые различия.

1. Базовые способы: копирование и специальная вставка

Самый простой способ вывести текст из ячейки — скопировать его и вставить в другое место. Но даже здесь есть нюансы, которые влияют на результат.

Если ячейка содержит только текст (без формул), достаточно выделить её и нажать Ctrl+C, затем Ctrl+V. Однако при работе с формулами или форматами (например, датами, хранящимися как числа) понадобится специальная вставка:

  • 📋 Текстовый формат: Выделите ячейку → Копировать → ПКМ по целевой ячейке → Специальная вставкаЗначения (или Текст в старых версиях). Это удалит формулы, оставив только видимый текст.
  • 🔢 Числа как текст: Если число отображается как дата (например, 45000 вместо 01.01.2023), перед вставкой установите формат целевой ячейки как Текстовый.
  • 🧹 Очистка форматирования: Используйте Главная → Редактирование → Очистить → Форматы, чтобы убрать лишние стили (цвет, шрифт) без потери текста.
⚠️ Внимание: При копировании ячеек с объединёнными диапазонами (Объединить и поместить в центре) текст вставится только в первую ячейку нового диапазона. Чтобы избежать потери данных, сначала разъедините ячейки (Главная → Объединить и поместить в центре).

2. Функции извлечения текста: ЛЕВСИМВ, ПРАВСИМВ, ПСТР

Когда текст нужно извлечь частично (например, первые 3 символа или фрагмент между разделителями), используйте текстовые функции. Они работают даже с динамически изменяющимися данными.

ФункцияСинтаксисПримерРезультат
ЛЕВСИМВ=ЛЕВСИМВ(текст; [число_знаков])=ЛЕВСИМВ(A1; 5)Первые 5 символов из A1
ПРАВСИМВ=ПРАВСИМВ(текст; [число_знаков])=ПРАВСИМВ(A1; 3)Последние 3 символа из A1
ПСТР=ПСТР(текст; начальная_позиция; число_знаков)=ПСТР(A1; 4; 2)2 символа, начиная с 4-й позиции

Пример практического применения: извлечём код региона из номера телефона формата +7 (9XX) XXX-XX-XX. Если номер хранится в ячейке A1, формула будет:

=ПСТР(A1; 5; 3)

Эта формула вернёт 9XX — код оператора.

Для извлечения текста между разделителями (например, домена из email) комбинируйте функции:

=ПСТР(A1; ПОИСК("@"; A1)+1; ПОИСК("."; A1; ПОИСК("@"; A1)+1) - ПОИСК("@"; A1) - 1)

Эта формула вернёт домен второго уровня из адреса user@domain.com (результат: domain).

⚠️ Внимание: Функция ПСТР в Excel 2016 и старше поддерживает только до 255 символов в аргументе текст. Для длинных строк используйте ПОЛУЧИТЬ.ДАННЫЕ.ИЗ.ТЕКСТАPower Query) или VBA.
📊 Какой способ извлечения текста вы используете чаще?
Ручное копирование
Текстовые функции (ЛЕВСИМВ, ПСТР)
Power Query
VBA-скрипты

3. Разделение текста по столбцам

Если текст в ячейке содержит разделители (запятые, точки с запятой, пробелы), его можно автоматически разбить на несколько столбцов. Это удобно для парсинга ФИО, адресов или CSV-данных.

Инструкция:

  1. Выделите диапазон с текстом.
  2. Перейдите в Данные → Текст по столбцам.
  3. Выберите С разделителямиДалее.
  4. Укажите разделитель (например, пробел или запятая). Для табуляции отметьте знак табуляции.
  5. Нажмите Готово.

Пример: если в ячейке A1 хранится Иванов Иван Иванович, после разделения по пробелу вы получите:

  • 👤 B1: Иванов (фамилия)
  • 👤 C1: Иван (имя)
  • 👤 D1: Иванович (отчество)

Для нестандартных разделителей (например, | или ;) в шаге 4 мастера укажите Другой и введите символ вручную.

Удалите лишние пробелы функцией =СЖПРОБЕЛЫ()|Проверьте единообразие разделителей (например, замените ; на ;)|Создайте резервную копию исходных данных|Убедитесь, что справа достаточно пустых столбцов для результата-->

4. Power Query: извлечение текста для больших данных

Если вам нужно обработать тысячи строк или текст имеет сложную структуру (например, JSON в ячейке), используйте Power Query — инструмент для преобразования данных, встроенный в Excel 2016+.

Алгоритм действий:

  1. Выделите диапазон → Данные → Получить данные → Из таблицы/диапазона.
  2. В открывшемся редакторе Power Query выберите столбец с текстом → Преобразовать → Разделить столбец → По разделителю.
  3. Укажите разделитель (например, запятая или кавычка).
  4. Примените изменения и загрузите данные обратно в Excel.

Преимущества Power Query:

  • 🔄 Неразрушающая обработка: Исходные данные остаются нетронутыми.
  • 🔍 Предварительный просмотр: Видно результат до применения изменений.
  • 📊 Автоматизация: Запрос можно обновить одним кликом при изменении исходных данных.

Пример: извлечём город и страну из адреса формата Москва, Россия, 125000:

  1. Разделите столбец по запятой.
  2. Удалите лишний столбец с индексом.
  3. Переименуйте столбцы в Город и Страна.
Как вернуть исходные данные после ошибки в Power Query?

Если вы закрыли редактор Power Query без сохранения или получили неверный результат, откройте Данные → Получить данные → Последние источники, выберите ваш запрос и нажмите Изменить. Все шаги преобразования сохраняются в истории.

5. Формулы для сложного парсинга: REGEX и комбинации функций

Когда стандартные функции не справляются (например, нужно извлечь текст между двумя разными разделителями или по шаблону), используйте комбинации формул или регулярные выраженияExcel 365).

Пример 1: Извлечь все цифры из текста (например, арт. ABC123XYZ123).

=СЦЕПИТЬ(ЕСЛИОШИБКА(--ПСТР(A1;СТРОКА($1:$10);1);""))

Эта формула массива проверяет каждый символ в A1 и возвращает только цифры.

Пример 2: В Excel 365 для извлечения текста по шаблону используйте ТЕКСТ.ПОСЛЕ, ТЕКСТ.ДО и ТЕКСТ.МЕЖДУ:

=ТЕКСТ.МЕЖДУ(A1; "["; "]")

Формула вернёт текст между квадратными скобками (например, из Код [XYZ123] извлечёт XYZ123).

Пример 3: Для регулярных выражений (если они поддерживаются вашей версией) используйте REGEX.EXTRACTGoogle Таблицах или Excel с надстройками):

=REGEXEXTRACT(A1; "\d{3}")

Эта формула извлечёт первую последовательность из 3 цифр.

⚠️ Внимание: Формулы массива (как в Примере 1) требуют подтверждения клавишами Ctrl+Shift+Enter в Excel 2019 и старше. В Excel 365 они работают как обычные формулы.

6. VBA-скрипты для автоматизации

Если вам нужно регулярно извлекать текст по сложным правилам, напишите макрос на VBA. Это ускорит работу с большими объёмами данных.

Пример 1: Извлечение текста до первого пробела (аналог ЛЕВСИМВ, но с динамической длиной):

Function ExtractBeforeSpace(rng As Range) As String

Dim str As String

str = rng.Value

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

End Function

Используйте в ячейке как =ExtractBeforeSpace(A1).

Пример 2: Удаление всех небуквенных символов (оставит только кириллицу/латиницу):

Function CleanText(rng As Range) As String

Dim str As String, i As Integer, result As String

str = rng.Value

For i = 1 To Len(str)

If Mid(str, i, 1) Like "[А-Яа-яA-Za-z]" Then

result = result & Mid(str, i, 1)

End If

Next i

CleanText = result

End Function

Чтобы добавить макрос:

  1. Нажмите Alt+F11 для открытия редактора VBA.
  2. Вставьте код в модуль (Вставка → Модуль).
  3. Сохраните файл как .xlsm (с поддержкой макросов).

7. Типичные ошибки и как их избежать

При извлечении текста пользователи часто сталкиваются с неожиданными результатами. Разберём самые распространённые проблемы:

ОшибкаПричинаРешение
Функция возвращает #ЗНАЧ!Неверный тип данных (например, в ячейке формула, а не текст)Используйте =ЗНАЧЕНИЕ.НА.ТЕКСТ(A1) или специальную вставку Значения
ПСТР возвращает #ЧИСЛО!Начальная позиция больше длины текстаПроверьте длину строки функцией =ДЛСТР(A1)
Текст обрезается при копированииВ целевой ячейке установлен формат Общий или ЧисловойУстановите формат Текстовый перед вставкой
Power Query не распознаёт разделителиВ данных есть невидимые символы (например, неразрывный пробел)Замените их на стандартные: =ПОДСТАВИТЬ(A1; СИМВОЛ(160); " ")

Скрытые символы — частая причина ошибок. Например, текст может содержать:

  • 🔹 Неразрывные пробелы (СИМВОЛ(160)): выглядят как обычные, но не распознаются как разделители.
  • 🔹 Символы переноса строки (СИМВОЛ(10) или СИМВОЛ(13)): могут ломать функции вроде ПОИСК.
  • 🔹 Непечатаемые символы (например, СИМВОЛ(9) — табуляция).

Чтобы их обнаружить, используйте функцию =КОДСИМВ(PСТР(A1;1;1)) для первого символа, затем проверяйте остальные позиции.

Как удалить все непечатаемые символы?

Используйте этот макрос:

Function CleanNonPrintable(rng As Range) As String

Dim str As String, i As Integer, result As String, charCode As Integer

str = rng.Value

For i = 1 To Len(str)

charCode = Asc(Mid(str, i, 1))

If charCode >= 32 And charCode <= 126 Then ' Печатаемые символы ASCII

result = result & Mid(str, i, 1)

End If

Next i

CleanNonPrintable = result

End Function

Примените к ячейке как =CleanNonPrintable(A1).

FAQ: Ответы на частые вопросы

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

Используйте специальную вставку с параметром Значения или функцию =ЗНАЧЕНИЕ.НА.ТЕКСТ(A1). Если формула возвращает ошибку, оберните её в =ЕСЛИОШИБКА(ваша_формула; "").

Почему ЛЕВСИМВ обрезает кириллические символы?

В старых версиях Excel (до 2013) функция ЛЕВСИМВ считает байты, а не символы. Для кириллицы (2 байта на символ) используйте =ЛЕВБ(A1; 5) — она учитывает ширину символов.

Как разделить текст по нескольким разделителям?

Замените все разделители на один общий, затем используйте Текст по столбцам. Например, чтобы разделить по , и ;:

  1. Создайте вспомогательный столбец: =ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; ","; "|"); ";"; "|").
  2. Разделите результат по символу |.
Можно ли извлечь текст по шаблону без VBA?

В Excel 365 используйте функции ТЕКСТ.ПОСЛЕ, ТЕКСТ.ДО, ТЕКСТ.МЕЖДУ. Для более сложных шаблонов (например, email или URL) комбинируйте их с ПОИСК и ПСТР. Пример для извлечения домена из URL:

=ТЕКСТ.МЕЖДУ(A1; "//"; "/")

Для https://site.com/page вернёт site.com.

Как извлечь текст из объединённых ячеек?

Объединённые ячейки (Объединить и поместить в центре) хранят текст только в первой ячейке диапазона. Чтобы его извлечь:

  1. Выделите объединённую ячейку.
  2. Скопируйте текст (Ctrl+C).
  3. Вставьте в новую ячейку (Ctrl+V).
  4. При необходимости разъедините исходные ячейки (Главная → Объединить и поместить в центре).

Для автоматизации используйте VBA:

Sub ExtractFromMerged()

Dim rng As Range

For Each rng In Selection

If rng.MergeCells Then

rng.MergeArea(1).Value = rng.Value

rng.MergeArea.UnMerge

End If

Next rng

End Sub