Функция ПСТР в Excel извлекает часть текста из середины строки: =ПСТР(A1;5;3) вернёт 3 символа начиная с 5-го. Ей нужно знать начальную позицию и количество символов; если позиция плавает, её находят функцией ПОИСК — так из ФИО извлекают имя, из артикула — код, а из строки — слово с нужным фрагментом. ПСТР всегда возвращает текст, поэтому извлечённые цифры превращают в число через ЗНАЧЕН. На английском функция называется MID.

| Раздел функций | Текстовые |
| Название и описание на английском | MID |
| Волатильность | Не волатильная |
| Похожие функции | ЛЕВСИМВ, ПРАВСИМВ |
Что делает функция ПСТР в Excel?
ПСТР выделяет фрагмент текста из середины текстовой записи.
Функция должна знать, с какой позиции начинается извлекаемый фрагмент и сколько символов выбрать.
Если количество выбираемых символов превышает доступное, будут выбраны только доступные символы.
Синтаксис ПСТР
=ПСТР(Текст;НачальнаяПозиция;КоличествоСимволов)
- Текст — строка или ссылка на ячейку.
- НачальнаяПозиция — номер первого извлекаемого символа (с 1). Если он больше длины текста, результат — пустая строка.
- КоличествоСимволов — сколько символов взять. Если их меньше, ПСТР вернёт сколько есть, без ошибки.
| A | B | C | |
|---|---|---|---|
| 1 | Текст | Формула | Результат |
| 2 | Excel-формулы | =ПСТР(A2;7;7) | формулы=ПСТР(A2;7;7) |
| 3 | ART-20391-RU | =ПСТР(A3;5;5) | 20391=ПСТР(A3;5;5) |
| 4 | Москва | =ПСТР(A4;3;100) | сква=ПСТР(A4;3;100) |
| 5 | Тула | =ПСТР(A5;10;3) | =ПСТР(A5;10;3) |
Строка 4: символов запрошено больше, чем есть, — ПСТР просто берёт до конца. Строка 5: начало за пределами текста — пустая строка, а не ошибка. В статье ранее был указан синтаксис ПРАВСИМВ — исправлено.
В английском Excel: =MID(A3,5,5)
ПСТР: формат результата и исходных данных
Аналогично ЛЕВСИМВ и ПРАВСИМВ.
Примеры использования ПСТР
Пример 1
В этом примере показано, как извлечь элемент переменной длины, который находится внутри текста.
В данном случае это имя внутри ФИО.
Извлекаемый текст имени всегда находится между первым и вторым пробелом.

=ПСТР(A2;ПОИСК(" ";A2)+1;ПОИСК(" ";A2;ПОИСК(" ";A2)+1)-ПОИСК(" ";A2)-1)
| A | B | |
|---|---|---|
| 1 | ФИО | Имя |
| 2 | Иванов Пётр Сергеевич | Пётр=ПСТР(A2;ПОИСК(" ";A2)+1;ПОИСК(" ";A2;ПОИСК(" ";A2)+1)-ПОИСК(" ";A2)-1) |
| 3 | Смирнова Анна Ивановна | Анна=ПСТР(A3;ПОИСК(" ";A3)+1;ПОИСК(" ";A3;ПОИСК(" ";A3)+1)-ПОИСК(" ";A3)-1) |
| 4 | Ким Александр Олегович | Александр=ПСТР(A4;ПОИСК(" ";A4)+1;ПОИСК(" ";A4;ПОИСК(" ";A4)+1)-ПОИСК(" ";A4)-1) |
Первый ПОИСК находит первый пробел — имя начинается со следующего символа. Второй ПОИСК ищет пробел после него; разница позиций минус 1 — длина имени. Отчество так же: =ПСТР(A2;ПОИСК(" ";A2;ПОИСК(" ";A2)+1)+1;100).
В английском Excel: =MID(A2,SEARCH(" ",A2)+1,SEARCH(" ",A2,SEARCH(" ",A2)+1)-SEARCH(" ",A2)-1)
Пример 2
Функция ПСТР используется для извлечения из строки первого слова, содержащего нужный фрагмент.
Функция ПОДСТАВИТЬ в комбинации с ПОВТОР создают большое количество пробелов между словами, чтобы гарантировать извлечение только одного слова с лишними пробелами справа и слева.
Функция СЖПРОБЕЛЫ после этого удаляет их.

=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A2;" ";ПОВТОР(" ";99));МАКС(1;ПОИСК(B2;ПОДСТАВИТЬ(A2;" ";ПОВТОР(" ";99)))-50);99))
| A | B | C | |
|---|---|---|---|
| 1 | Текст | Фрагмент | Слово |
| 2 | пишите на info@site.ru до пятницы | @ | info@site.ru=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A2;" ";ПОВТОР(" ";99));МАКС(1;ПОИСК(B2;ПОДСТАВИТЬ(A2;" ";ПОВТОР(" ";99)))-50);99)) |
| 3 | заказ №A-1520 от 12.10 | № | №A-1520=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A3;" ";ПОВТОР(" ";99));МАКС(1;ПОИСК(B3;ПОДСТАВИТЬ(A3;" ";ПОВТОР(" ";99)))-50);99)) |
| 4 | в наличии SKU-882 и SKU-901 | SKU | SKU-882=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A4;" ";ПОВТОР(" ";99));МАКС(1;ПОИСК(B4;ПОДСТАВИТЬ(A4;" ";ПОВТОР(" ";99)))-50);99)) |
| 5 | ссылка https://semtools.guru/ru/ в описании | http | https://semtools.guru/ru/=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A5;" ";ПОВТОР(" ";99));МАКС(1;ПОИСК(B5;ПОДСТАВИТЬ(A5;" ";ПОВТОР(" ";99)))-50);99)) |
Каждый пробел превращается в 99 пробелов, поэтому окно из 99 символов, начатое за 50 символов до найденного фрагмента, захватывает только одно слово. СЖПРОБЕЛЫ убирает лишние пробелы. МАКС(1;…) защищает от отрицательной позиции, когда слово стоит в начале строки. Берётся первое подходящее слово.
В английском Excel: =TRIM(MID(SUBSTITUTE(A2," ",REPT(" ",99)),MAX(1,SEARCH(B2,SUBSTITUTE(A2," ",REPT(" ",99)))-50),99))
ПСТР и числа: извлечь цифры и превратить в число
ПСТР возвращает текст, даже если вырезаны одни цифры: «20391» выровнено влево и не суммируется. Оберните результат в ЗНАЧЕН или поставьте двойной минус. Так же собирают дату из строки вида ГГГГММДД.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Строка | Код (текст) | Код (число) | Дата |
| 2 | ART-20391-RU | 20391=ПСТР(A2;5;5) | 20391=ЗНАЧЕН(ПСТР(A2;5;5)) | |
| 3 | 20261021 | 261=ПСТР(A3;3;3) | 1021=--ПСТР(A3;5;4) | 21.10.2026=ДАТА(ЛЕВСИМВ(A3;4);ПСТР(A3;5;2);ПРАВСИМВ(A3;2)) |
ДАТА сама преобразует текстовые «2026», «10», «21» в числа, поэтому ЗНАЧЕН внутри не нужен.
В английском Excel: =DATE(LEFT(A3,4),MID(A3,5,2),RIGHT(A3,2))
Разбить текст на символы с помощью ПСТР
Если номер позиции брать из СТОЛБЕЦ, одна формула, протянутая вправо, разложит строку по одному символу в ячейку. В Excel 365 весь массив символов даёт =ПСТР(A2;ПОСЛЕД(ДЛСТР(A2));1).
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Текст | 1 | 2 | 3 | 4 | 5 | |
| 2 | Excel | E=ПСТР($A2;СТОЛБЕЦ(A1);1) | x=ПСТР($A2;СТОЛБЕЦ(A1);1) | c=ПСТР($A2;СТОЛБЕЦ(A1);1) | e=ПСТР($A2;СТОЛБЕЦ(A1);1) | l=ПСТР($A2;СТОЛБЕЦ(A1);1) |
СТОЛБЕЦ(A1) = 1, при протягивании вправо — 2, 3… $A закрепляет исходную ячейку.
В английском Excel: =MID($A2,COLUMN(A1),1)
Почему ПСТР возвращает ошибку или не то — частые ошибки
- #ЗНАЧ!. Начальная позиция меньше 1 или количество символов отрицательное — чаще всего ПОИСК не нашёл пробел или фрагмент. Оберните в ЕСЛИОШИБКА.
- Результат пустой. Начальная позиция больше длины текста.
- Число не суммируется. ПСТР возвращает текст — используйте ЗНАЧЕН(ПСТР(…)) или --ПСТР(…).
- Захвачен лишний пробел или символ. Проверьте «+1» и «-1» вокруг ПОИСК и уберите пробелы СЖПРОБЕЛЫ.
- Формула не принимается. В русском Excel аргументы разделяются точкой с запятой: =ПСТР(A1;2;3).
Функция ПСТР — частые вопросы
Как работает ПСТР в Excel?
Возвращает заданное число символов начиная с указанной позиции: =ПСТР(A1;5;3).
Как из ячейки извлечь часть текста?
С начала — ЛЕВСИМВ, с конца — ПРАВСИМВ, из середины — ПСТР; если позиция плавает, вычислите её через ПОИСК.
Как извлечь текст между двумя символами?
Найдите оба символа ПОИСК и возьмите разницу позиций как длину, как в примере с именем из ФИО.
Как ПСТР называется на английском?
MID. Формула =ПСТР(A1;5;3) в английском Excel — =MID(A1,5,3).
Почему ПСТР возвращает текст вместо числа?
Все текстовые функции возвращают текст. Превратите его в число через ЗНАЧЕН или двойной минус.
Извлечь слова по номеру, текст между символами, числа и фрагменты по шаблону во всём столбце сразу можно в пару кликов с !SEMTools — без формул с ПОИСК и ПОВТОР.
!SEMTools решает эту и сотни других задач в пару кликов!
Итоги: функция ПСТР в Excel
| Задача | Формула |
|---|---|
| Фрагмент с позиции | =ПСТР(A1;5;3) |
| Имя из ФИО | =ПСТР(A2;ПОИСК(" ";A2)+1;…) |
| До конца строки | =ПСТР(A1;5;100) |
| Цифры как число | =ЗНАЧЕН(ПСТР(A1;5;5)) |
| Символ по номеру | =ПСТР(A1;n;1) |
Надеюсь, на этой странице вы нашли то, что искали. ПСТР — основа извлечения текста из середины строки; в связке с ПОИСК она находит нужный фрагмент где угодно.