Возможности !SEMTools

Поиск позиции первого числа в ячейке

Мы уже научились находить позицию первой буквы в ячейке, формула поиска позиции числа имеет схожий принцип — превращает строку в массив символов и проверяет каждый на принадлежность к цифрам.

Вариант 1

{=ПОИСКПОЗ(ЛОЖЬ;ЕОШ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)-1);0)}
Формула поиска позиции первой цифры в ячейке

Как она это делает? Из массива вычитается единица (это может быть любое число), далее полученный массив ошибок и валидных значений обрабатывается функцией ЕОШ. Ошибки вычисления (там, где были нечисловые символы) вернут ИСТИНА, цифровые символы — ЛОЖЬ.

Функция ПОИСКПОЗ возвращает позицию первой цифры через поиск первого значения ЛОЖЬ.

Как и все формулы массива в Excel, данная формула вводится сочетанием клавиш Ctrl+Shift+Enter.

Вариант 2

Есть и вот такая вариация формулы массива, использующая функции МИН, ПОИСК, СИМВОЛ и ЕСЛИОШИБКА:

{=МИН(ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(СТРОКА(48:57));A1);""))}

Её принцип несколько иной —

  1. каждый из 10 цифровых символов ищется внутри строки функцией ПОИСК, возвращающей в успешных случаях его позицию, а в неуспешных — ошибку
  2. массив результатов обрабатывается функцией ЕСЛИОШИБКА и вместо ошибок вставляет в массив пустоты, чтобы из-за ошибок не прерывалась работа функции МИН
  3. результирующий массив обрабатывает функция МИН и возвращает минимальную из позиций — это и есть позиция первой цифры в ячейке

Функция более требовательна к ресурсам компьютера (строковые функции «дороже» математических), поэтому рекомендуется первый вариант.

Применение формул

Наиболее понятное применение — это когда нужно отделить в ячейке текст от цифр или удалить текст до первой цифры.