Функция ПСТР в Excel позволяет нам извлекать подстроки из текстовых значений по заданным условиям. Это мощный инструмент, который помогает обрабатывать и анализировать текстовые данные более эффективно.
Сегодня рассмотрим 5 базовых примеров использования функции ПСТР, которые помогут улучшить работу.
⏩ Извлечение определенного количества символов из текста
Если требуется извлечь определенное количество символов из текстовой строки можно использовать следующую формулу:
Это простой пример. Для более "сложных" поисков следует использовать сочетание функций.
⏩ Извлечение данных из крайней правой позицией
В данном примере ПСТР() используется для извлечения подстроки из ячейки A2 начиная с первого пробела и до конца строки
Результатом этой формулы будет значение, содержащееся после первого пробела в ячейке A2 (исключая сам пробел):
🔔 Формула имеет место если позиция находится справа, а текстовая строка содержит только один пробел
⏩ Извлечение имени файла из пути
Часто при работе с файлами требуется извлечь только имя файла из полного пути.
Например, есть путь "C:\Documents\Test.xlsx"
Представленная формула позволяет извлечь только имя файла из полного пути к файлу, игнорируя путь и другие символы:
- ПОДСТАВИТЬ(A2;"\";"*";ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;"\";""))) заменяет последний символ обратного слеша в строке A2 на символ "*", чтобы пометить начало имени файла.
- НАЙТИ("*";ПОДСТАВИТЬ(A2;"\";"*";ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;"\";""))))+1 находит позицию символа "*", обозначающего начало имени файла.
Альтернативное решение:
- ПОДСТАВИТЬ(A2;"";ПОВТОР(" ";100)) заменяет каждый символ "" в пути к файлу на 100 пробелов. Это делается для создания отступа пробелов перед именем файла.
- ПРАВСИМВ() применяется к результату предыдущего шага. Возвращает правую часть строки, содержащую имя файла и пробелы, созданные на предыдущем шаге.
- С помощью параметра 99, выбирается последний символ перед именем файла.
- СЖПРОБЕЛЫ() удаляет лишние пробелы из полученной строки. Это позволяет получить чистое имя файла без пробелов.
⏩ Извлечение даты из текстовой строки
Например, требуется извлечь дату из текстовой строки формата: "Заказ №12345 от 01.05.2023"
Пример решения:
- НАЙТИ("от";A2) находит позицию первого вхождения текста "от" в содержимом ячейки A2. Эта функция возвращает числовое значение, представляющее позицию первого символа "от" в строке.
- к полученному значению добавляется число 3, чтобы перейти к позиции следующей за текстом "от". Таким образом, получаем начальную позицию для извлечения подстроки.
- ПСТР(A2;НАЙТИ("от";A2)+3;10) применяется к ячейке A2 и указывает на то, что нужно извлечь подстроку, начиная с позиции, определенной на предыдущем шаге, и имеющую длину 10 символов.
⏩ Извлечение первого слова
Например, есть список сотрудников. Для извлечения только фамилии сотрудника можно использовать следующую формулу:
В данном примере формула применяется к ячейке A2 и указывает на то, что нужно извлечь подстроку, начиная с первого символа и до позиции перед первым пробелом.
- НАЙТИ(" ";A1) находит позицию первого пробела в содержимом ячейки A1. Это число представляет позицию первого пробела в строке.
- от полученного значения вычитается 1, чтобы определить позицию перед первым пробелом. Это нужно для того, чтобы извлечь подстроку до этой позиции.
⏩ Извлечение числа
(двойное извлечение подстроки из исходной строки)
Пример решения:
🔘 Механизм работы функции:
Преобразует исходную строку A2 путем добавления "_0" в конец исходной строки и затем извлекает подстроку начиная с первого вхождения любой цифры из {0;1;2;3;4;5;6;7;8;9} в эту измененную строку. Результат этой для данного примера будет выглядеть как "150015 шт._0".
Извлекает подстроку из внутренней функции начиная с первого символа и заканчивая символом перед первым пробелом в подстроке. Таким образом, будет извлекаться число из "150015 шт._0", расположенное до первого пробела, и возвращает результат
А какие примеры использования ПСТР() знаете вы? Поделитесь в комментариях 😉