Функция ПСТР (MID) в Excel: текст из середины
Возможности !SEMTools
↑ Навигация по задачам в Excel и возможностям надстройки !SEMTools ↑

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

ПСТР - примеры
ПСТР - простейшие примеры применения
Раздел функцийТекстовые
Название и описание на английскомMID
ВолатильностьНе волатильная
Похожие функцииЛЕВСИМВ, ПРАВСИМВ

Что делает функция ПСТР в Excel?

ПСТР выделяет фрагмент текста из середины текстовой записи.
Функция должна знать, с какой позиции начинается извлекаемый фрагмент и сколько символов выбрать.
Если количество выбираемых символов превышает доступное, будут выбраны только доступные символы.

Реклама

Синтаксис ПСТР

=ПСТР(Текст;НачальнаяПозиция;КоличествоСимволов)
  • Текст — строка или ссылка на ячейку.
  • НачальнаяПозиция — номер первого извлекаемого символа (с 1). Если он больше длины текста, результат — пустая строка.
  • КоличествоСимволов — сколько символов взять. Если их меньше, ПСТР вернёт сколько есть, без ошибки.
ПСТР: позиция и длина
C3=ПСТР(A3;5;5)
ABC
1ТекстФормулаРезультат
2Excel-формулы=ПСТР(A2;7;7)формулы=ПСТР(A2;7;7)
3ART-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)
Имя из ФИО
B2=ПСТР(A2;ПОИСК(" ";A2)+1;ПОИСК(" ";A2;ПОИСК(" ";A2)+1)-ПОИСК(" ";A2)-1)
AB
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))
Слово, содержащее фрагмент
C2=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A2;" ";ПОВТОР(" ";99));МАКС(1;ПОИСК(B2;ПОДСТАВИТЬ(A2;" ";ПОВТОР(" ";99)))-50);99))
ABC
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-901SKUSKU-882=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A4;" ";ПОВТОР(" ";99));МАКС(1;ПОИСК(B4;ПОДСТАВИТЬ(A4;" ";ПОВТОР(" ";99)))-50);99))
5ссылка https://semtools.guru/ru/ в описанииhttphttps://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» выровнено влево и не суммируется. Оберните результат в ЗНАЧЕН или поставьте двойной минус. Так же собирают дату из строки вида ГГГГММДД.

Цифры из ПСТР → число и дата
D3=ДАТА(ЛЕВСИМВ(A3;4);ПСТР(A3;5;2);ПРАВСИМВ(A3;2))
ABCD
1СтрокаКод (текст)Код (число)Дата
2ART-20391-RU20391=ПСТР(A2;5;5)20391=ЗНАЧЕН(ПСТР(A2;5;5))
320261021261=ПСТР(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).

Посимвольно
D2=ПСТР($A2;СТОЛБЕЦ(A1);1)
ABCDEFG
1Текст12345
2ExcelE=ПСТР($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)

Надеюсь, на этой странице вы нашли то, что искали. ПСТР — основа извлечения текста из середины строки; в связке с ПОИСК она находит нужный фрагмент где угодно.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*