Функция ПОИСК в Excel — примеры
Раздел функций | Текст |
Имя на английском | ИССЛЕДОВАТЬ |
Волатильность | Нелетучий |
Подобные функции | НАЙТИ (функция), найти и заменить (процедура) |
Что делает функция ПОИСК?
Эта функция похожа на функцию НАЙТИ и также ищет подстроку в строке. Когда поиск найден, его позиция в тексте отображается в виде числа.
Отличие от функции НАЙТИ в том, что ПОИСК не учитывает регистр текста. И востребованный, и тот, который мы ищем.
В Excel также есть процедура «Найти и заменить» — у нее есть свои преимущества, такие как операторы с подстановочными знаками.
Синтаксис
= ПОИСК (поиск текста; SearchWhatString; [StartPosition])
- Поиск текста: искомый символ или комбинация
- StringSeeked for — это ячейка, текстовое значение или любое выражение, возвращаемое другой функцией.
- Начальная позиция — необязательный параметр, при отсутствии поиск начинается с первого символа
Если текст содержит более одного вхождения, возвращается позиция первого.
Третий (необязательный) параметр используется для поиска с определенной позиции в тексте и по умолчанию равен 1.
Если совпадения в тексте не найдено, эта функция возвращает ошибку #VALUE.
Форматирование
При поиске дат функция ПОИСК, как и все текстовые функции, обрабатывает их как числа, поэтому для успешного поиска может потребоваться функция ТЕКСТ.
В этом случае логические значения ИСТИНА и ЛОЖЬ преобразуются в текст, соответствующий их написанию.
Поиск символа в ячейке
Самый простой пример использования функции — поиск определенного символа в ячейке.
Логика проста: если поиск позиции символа не возвращает ошибку, символ присутствует в ячейке:
= НЕ (EOSH (ПОИСК (шаблон; текст))) Найдите символ в ячейке по формуле ПОИСК
Извлечь первое слово
В этом более простом примере мы извлекаем первое слово из ячейки, используя комбинацию — функция LEFT + функция SEARCH. Поскольку пробел не чувствителен к регистру, вы также можете использовать функцию НАЙТИ для этого случая.
Определите номер позиции первого пробела и верните символы до этой позиции
Приведенная выше таблица использовалась для извлечения имени из строки имени и фамилии.
- ПОИСК возвращает позицию пробела между именем и фамилией.
- Длина имени рассчитывается как позиция пробела минус 1.
- Функция LEFT извлекает имя в зависимости от его длины.
Другие примеры использования
Найдите первую цифру в ячейке:
= МИН (ЕСЛИОШИБКА (ПОИСК ({0: 9: 8: 7: 6: 5: 4: 3: 2: 1}; A1), 1000))
Найдите первую цифру в ячейке и верните все, что указано выше:
= LEFT (A1; MIN (ЕСЛИОШИБКА (ПОИСК ({0: 9: 8: 7: 6: 5: 4: 3: 2: 1}; A1), 1000)) — 1)
Узнайте, содержит ли ячейка латинские символы. Формула вернет «ИСТИНА» или «ЛОЖЬ»:
= COUNT (SEARCH ({«a»: «b»: «c»: «d»: «e»: «f»: «g»: «h»: «i»: «j»: «k»: «l»: «m»: «n»: «o»: «p»: «q»: «r»: «s»: «t»: «u»: «v»: «w»: «x» «:» y «:» z «}; A1))> 0
Аналогичным образом найдите кириллицу в тексте:
= СЧЁТ (ПОИСК ({«a»: «b»: «c»: «g»: «d»: «e»: «e»: «f»: «z»: «e»: «d»: «k»: «l»: «m»: «n»: «o»: «p»: «p»: «s»: «t»: «y»: «f»: «x»: «c» «:» h «:» w «:» u «:» b «:» s «:» b «:» e «:» u «:» i «}; A1))> 0
Функция ПОИСК в формуле массива
Приведенные выше примеры, где буквы явно указаны в строковом массиве, занимают некоторое место. При этом буквы идут в ряд, что говорит о том, что их можно как-то иначе выразить интервалом.
Фактически, это возможно благодаря комбинации функций СТРОКА и ПОИСК:
{= СЧЁТ (ПОИСК (СИМВОЛ (СТРОКА (65:90)); A1))> 0}
Отличие этой формулы массива от предыдущих в том, что вводить ее нужно без фигурных скобок, они появятся при вводе формулы при нажатии Ctrl + Shift + Enter (вместо обычного Enter). В приведенной выше формуле, где все буквы указаны явно, фигурные скобки вводятся вручную — это явное указание на массив строк.
Что происходит в этой формуле?
- Функция СТРОКА с числовым аргументом «65:90» возвращает массив чисел от 65 до 90 включительно. Именно в этом диапазоне в таблице ASCII находятся все латинские символы;
- Функция SYMBOL возвращает свой символ для каждого числового значения в этом массиве, создавая таким образом массив латинских символов;
- Функция ПОИСК ищет каждый из этих символов в строке и возвращает число или ошибку, тем самым создавая массив чисел и ошибок
- Функция COUNT подсчитывает числовые значения в результирующем массиве. Если результат больше нуля, был найден хотя бы один латинский символ. Если нет (все поиски вернули ошибку), значит, это не так
Аналогичная формула для кириллицы:
{= СЧЁТ (ПОИСК (СИМВОЛ (СТРОКА (192: 223)); A1))> 0}