У меня накопилось несколько статей, в которых используется функция ПСТР. Но еще чаще меня спрашивают, что это за формула, и как ей пользоваться. Поскольку функция очень удобная, то стоит написать о ней отдельную статью. Итак, подробное описание:
Ниже подробно опишу возможности этой функции, чем она отличается от ПСТР, ее написание на английском и в VBA, какие могут быть трудности. Но сперва перечислю статьи, где уже использовалась функция:
- Как удалить символ в ячейке Excel?
- Как разделить текст в Excel по столбцам?
- Функции ПОДСТАВИТЬ и ЗАМЕНИТЬ в Excel
- Заглавные буквы в Excel. Работа с регистром
- Как посчитать количество символов в ячейке Excel?
Содержание
Описание функции ПСТР
Функция находит и возвращает определенное количество символов из значения ячейки, начиная с нужного символа.
К примеру, если нужно вытащить дату из текста:
Реквизиты:
ПСТР(текст; начальная_позиция; число_знаков)
-
Текст. Текст или символы, из которых нужно извлечь значение (в примере дату 13.06.2018)
- Начальная_позиция. Номер знака, с которого нужно начать извлечение.
-
Число_знаков. Сколько именно знаков надо извлекать, дата в таком формате всегда 10 символов
Все реквизиты обязательны.
В итоге для нашего примера получится такая формула
=ПСТР(A1;17;10)
Новая функция ПСТРБ
У нее почти такие же реквизиты
ПСТРБ(текст; начальная_позиция; число_байтов)
Практически все тоже самое, но возвращает не число знаков в третьем реквизите, а число байтов.
Разница ПСТР и ПСТРБ
Функция ПСТР считает каждый символ (двух- или однобайтовый) за один. ПСТРБ считает для двухбайтовых языков символ за 2, а для однобайтовых, соответственно, за 1. К двухбайтовым относятся японский, китайский и корейский.
Функция на английском
В английской версии эти функции записываются как MID и MIDB (ПСТРБ).
ПСТР и VBA
В редакторе макросов вы также можете использовать возвращение определенных символов из текста. Для нашего примера самый простой вариант рассчитать так:
Range("A2").Value = Mid(Range("A1"), 17, 10)
Какие бывают ошибки:
- Если реквизиты «Начальная позиция», «Число знаков» или Число байтов будут <0, функция выдаст ошибку #ЗНАЧ!
- Если число реквизита «Начальная позиция» превышает число длины текстовой строки (первый реквизит), то ваша формула возвратит пустую строку.
Комментарии:
К этой записи пока нет комментариев. Возможно вы будете первым?