Как вырезать часть текста из ячейки в Excel с помощью ПСТР

Иван Корнев·10.04.2026·3 мин

Функция ПСТР (в английской версии — MID) извлекает фрагмент текста из ячейки, начиная с указанной позиции и заданной длины. Это основной инструмент для парсинга строк, разделения ФИО, выделения кодов из артикулов или доменов из ссылок без использования макросов. Формула работает по принципу: «найди точку старта, отсчитай нужное количество символов и верни результат».

Синтаксис и базовые принципы работы

Функция принимает три обязательных аргумента:

=ПСТР(текст; начальная_позиция; количество_символов)

Где:

  • текст — ссылка на ячейку (например, A2) или текстовая строка в кавычках.
  • начальная_позиция — номер символа, с которого начинается извлечение. Отсчет всегда идет с 1.
  • количество_символов — длина возвращаемой подстроки.

Если вы укажете длину больше, чем осталось символов до конца строки, функция просто вернет текст до конца ячейки, не выдавая ошибку.

Простые примеры:

  • Извлечь 3 символа, начиная с 5-го: =ПСТР(A2; 5; 3)
  • Получить первый символ строки: =ПСТР(A2; 1; 1) (аналог функции ЛЕВСИМВ).

Динамическое извлечение: работа с разделителями

Главная сила ПСТР раскрывается в связке с функциями НАЙТИ (ищет точное совпадение с учетом регистра) или ПОИСК (игнорирует регистр). Это позволяет вытаскивать данные, даже если их положение в строке меняется.

Извлечение текста между скобками

Задача: получить код города из строки Телефон: +7 (495) 123-45-67. Логика формулы: найти открывающую скобку, сдвинуться на 1 знак вправо, затем посчитать расстояние до закрывающей скобки.

=ПСТР(A2; НАЙТИ("("; A2) + 1; НАЙТИ(")"; A2) - НАЙТИ("("; A2) - 1)

Разбор аргументов:

  1. Старт: НАЙТИ("("; A2) + 1 — позиция сразу после скобки.
  2. Длина: Позиция_конца - Позиция_начала. Мы вычитаем позицию открывающей скобки из позиции закрывающей и убираем еще 1, чтобы не захватить саму скобку.

Выделение домена из URL

Задача: из https://site.com/page получить site.com. Здесь нужно найти протокол ://, пропустить его (3 символа) и брать текст до следующего слэша /.

=ПСТР(A2; НАЙТИ("://"; A2) + 3; НАЙТИ("/"; A2; НАЙТИ("://"; A2) + 3) - НАЙТИ("://"; A2) - 3)

Функция НАЙТИ чувствительна к регистру. Если в данных возможны варианты написания (например, Id: и ID:), используйте функцию ПОИСК, которая игнорирует регистр букв.

Обработка ошибок и защита формул

При работе с реальными данными часто встречаются строки, где нужный разделитель отсутствует. В таком случае функции НАЙТИ/ПОИСК вернут ошибку #ЗНАЧ!, и вся формула сломается.

Чтобы избежать этого, оборачивайте конструкцию в ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(ПСТР(A2; НАЙТИ("("; A2) + 1; ...); "Нет данных")

Если разделитель не найден, формула вернет текст «Нет данных» вместо кода ошибки.

Практические кейсы обработки данных

ЗадачаИсходные данныеФормулаРезультат
Фамилия из полного имениИванов Иван Петрович=ПСТР(A2; 1; НАЙТИ(" "; A2) - 1)Иванов
Имя из полного имениИванов Иван Петрович=ПСТР(A2; НАЙТИ(" "; A2) + 1; НАЙТИ(" "; A2; НАЙТИ(" "; A2)+1) - НАЙТИ(" "; A2) - 1)Иван
Текст после двоеточияАртикул: AX-500-Red=ПСТР(A2; ПОИСК(": "; A2) + 2; ДЛСТР(A2))AX-500-Red
Первые 4 цифры годаДата: 2026-04-10=ПСТР(A2; 7; 4)2026

Для разделения текста по простому разделителю (запятая, пробел) в новых версиях Excel (365, 2021) удобнее использовать функцию ТЕКСТРАЗД (TEXTSPLIT), но ПСТР остается незаменимой для сложных условий и старых версий программы.

Частые ошибки при использовании

  1. Отсчет с нуля. В Excel нумерация символов начинается с 1, а не с 0. Указание 0 в аргументе позиции приведет к ошибке #ЗНАЧ!.
  2. Лишние пробелы. Если вы извлекаете текст после разделителя, не забудьте добавить +1 к позиции найденного символа, иначе результат начнется с самого разделителя (пробела или запятой).
  3. Несоответствие локали. В русской версии Excel аргументы разделяются точкой с запятой (;), в английской — запятой (,). При копировании формул из интернета проверяйте разделители.

Часто задаваемые вопросы (FAQ)

Чем ПСТР отличается от ЛЕВСИМВ и ПРАВСИМВ? ЛЕВСИМВ берет текст строго с начала строки, ПРАВСИМВ — с конца. ПСТР универсальна: она может начать извлечение с любой середины строки.

Как извлечь текст до конца строки, не зная её точной длины? В аргументе «количество символов» укажите очень большое число (например, 999) или используйте функцию ДЛСТР(ячейка) - позиция_старта + 1. Функция автоматически обрежет результат по фактическому концу текста.

Можно ли использовать ПСТР с числами? Да, но результат всегда будет текстовым. Если вам нужно дальше производить математические операции с извлеченным фрагментом, оберните формулу в функцию ЗНАЧЕН() или умножьте результат на 1 (например, =ПСТР(...)*1).