backtotop
Каракули и иероглифы в Excel
Как записать римские цифры в Word и Excel?

У меня накопилось несколько статей, в которых используется функция ПСТР. Но еще чаще меня спрашивают, что это за формула, и как ей пользоваться. Поскольку функция очень удобная, то стоит написать о ней отдельную статью. Итак, подробное описание:

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

  1. Как удалить символ в ячейке Excel?
  2. Как разделить текст в Excel по столбцам?
  3. Функции ПОДСТАВИТЬ и ЗАМЕНИТЬ в Excel
  4. Заглавные буквы в Excel. Работа с регистром
  5. Как посчитать количество символов в ячейке Excel?

Описание функции ПСТР

Функция находит и возвращает определенное количество символов из значения ячейки, начиная с нужного символа.

К примеру, если нужно вытащить дату из текста:

ПСТР

Сам пример.

Реквизиты:

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

  • Текст. Текст или символы, из которых нужно извлечь значение (в примере дату 13.06.2018)

  • Начальная_позиция. Номер знака, с которого нужно начать извлечение.
  • Число_знаков. Сколько именно знаков надо извлекать, дата в таком формате всегда 10 символов

Все реквизиты обязательны.

В итоге для нашего примера получится такая формула

=ПСТР(A1;17;10)

Новая функция ПСТРБ

У нее почти такие же реквизиты

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

Практически все тоже самое, но возвращает не число знаков в третьем реквизите, а число байтов.

Разница ПСТР и ПСТРБ

Функция ПСТР считает каждый символ (двух- или однобайтовый) за один. ПСТРБ считает для двухбайтовых языков символ за 2, а для однобайтовых, соответственно, за 1. К двухбайтовым относятся японский, китайский и корейский.

Функция на английском

В английской версии эти функции записываются как MID и MIDB (ПСТРБ).

ПСТР и VBA

В редакторе макросов вы также можете использовать возвращение определенных символов из текста. Для нашего примера самый простой вариант рассчитать так:

Range("A2").Value = Mid(Range("A1"), 17, 10)

Какие бывают ошибки:

  1. Если реквизиты «Начальная позиция», «Число знаков» или Число байтов будут <0, функция выдаст ошибку #ЗНАЧ!
  2. Если число реквизита «Начальная позиция» превышает число длины текстовой строки (первый реквизит), то ваша формула возвратит пустую строку.

 

Каракули и иероглифы в Excel
Как записать римские цифры в Word и Excel?

Комментарии:

К этой записи пока нет комментариев. Возможно вы будете первым?

Добавить комментарий