Распознавать цифры или числа в ячейке

Содержание

Как узнать, есть ли в ячейке цифры

Хотели бы вы использовать формулу, чтобы распознать, когда число или одна или несколько цифр могут быть найдены в тексте в ячейке? Если в ячейке есть число, формула должна возвращать «да», но также и в том случае, если число является частью содержимого ячейки, например, для «Meine5isthier» или «2fast4you». Это была задача на конкурсе формул Excel, и вот первое решение:

= ЕСЛИ (СЧЁТ (НАЙТИ (СТРОКА (A: A) -1; A1)); «да»; «нет»)

Формула - это формула массива. Вы должны ввести его, используя сочетание клавиш CTRL SHIFT ENTER вместо клавиши ENTER. Затем Excel помечает формулу фигурными скобками. Не вводите эти скобки; они автоматически помещаются вокруг формулы для визуализации формул массива.

На следующем рисунке показано использование формулы на практике:

Формула заставляет функцию НАЙТИ искать цифры от 0 до 9 в ячейке A1. Поле данных от 0 до 9 является результатом выражения LINE (1: 9) в матрице. НАЙТИ возвращает поле данных, состоящее из найденных цифр и значений ошибки # ЗНАЧ! состоит.

Отсюда функция ЧИСЛО определяет количество цифр в списке. Если это число больше 0, ячейка содержит цифры. Функция ЕСЛИ запрашивает это число. Поскольку ЕСЛИ рассматривает только значение 0 как ЛОЖЬ, функция ЕСЛИ приводит к отображению «да», если в ячейке есть цифры, и «нет», если нет.

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

= ЕСЛИ (СЧЁТ (НАЙТИ (СТРОКА (A1: A10) -1; A1)), «да», «нет»)

В качестве альтернативы вы можете использовать решение 2, в котором используется то же количество символов:

= ЕСЛИ (ЧИСЛО (1 * ЧАСТЬ (A1; СТРОКА (A: A); 1)); «да»; «нет»)

Эта формула также является формулой массива, которую необходимо передать в ячейку с помощью CTRL SHIFT ENTER.

В этой формуле отдельные буквы / цифры содержимого ячейки из ячейки A1 выделяются с помощью матрицы, а затем умножаются на 1. В результате получается матрица, состоящая из значений ошибки # VALUE1 и отдельных цифр содержимого ячейки. Затем формула использует функцию ЧИСЛО, чтобы определить количество цифр, которые она содержит, и использует ее в качестве критерия для запроса ЕСЛИ.

Эта формула работает медленно, потому что все строки в столбце A пройдены. Формула ускоряется при следующем изменении:

= ЕСЛИ (ЧИСЛО (1 * ЧАСТЬ (A1; СТРОКА (A1: A100); 1)); «да»; «нет»)

В этом случае запись в ячейке A1 может содержать не более 100 символов. Следующая, особенно быстрая формула, которую вы можете ввести обычным способом, вообще не требует матрицы:

= ЕСЛИ (ЧИСЛО (НАЙТИ ({0; 1; 2; 3; 4; 5; 6; 7; 8; 9}; A1)); «да»; «нет»)

Здесь матрица ROW (A: A) заменена явным списком возможных цифр от 0 до 9. В этой формуле необходимо ввести фигурные скобки!

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave