Функция ПОИСК (SEARCH)

Сегодня мы изучим функцию ПОИСК. Он ищет символ (или символы) в текстовой строке и сообщает вам, где он был найден. Мы также увидим, как поступать в ситуациях, когда эта функция генерирует ошибку.
Итак, давайте подробнее рассмотрим теорию и практические примеры функции ПОИСК. Если у вас есть какие-то скрытые уловки или примеры работы с этой функцией, поделитесь ими в комментариях.
Функция 18: SEARCH (ПОИСК)
Функция ПОИСК ищет текстовую строку в другой текстовой строке и, если она найдена, сообщает ее позицию.
Как можно использовать функцию SEARCH (ПОИСК)?
Функция ПОИСК ищет текстовую строку в другой текстовой строке. Она может:
- Находит строку текста в другой текстовой строке (без учета регистра).
- Используйте в поиске подстановочные знаки.
- Определите начальную позицию в отображаемом тексте.
Синтаксис SEARCH (ПОИСК)
Функция ПОИСК имеет следующий синтаксис:
ПОИСК (найти_текст; внутри_текста; [начальное_число])
ПОИСК (текст_поиска; текст_поиска; [начальная_позиция])
- find_text (search_text) - это текст, который вы ищете.
- inside_text (text_for_search) - текстовая строка, внутри которой происходит поиск.
- start_num (start_position) - если не указано, поиск будет начинаться с первого символа.
Ловушки SEARCH (ПОИСК)
Функция ПОИСК вернет позицию первой совпадающей строки независимо от регистра. Если вам нужен поиск с учетом регистра, вы можете использовать функцию НАЙТИ, которую мы рассмотрим позже в 30 функциях Excel в 30-дневном марафоне.
Пример 1: Находим текст в строке
Используйте функцию ПОИСК, чтобы найти любой текст в текстовой строке. В этом примере мы будем искать один символ (введенный в ячейку B5) в текстовой строке, найденной в ячейке B2.
= ПОИСК (B5; B2)
= ПОИСК (B5; B2)
Если текст найден, функция ПОИСК вернет номер позиции своего первого символа в текстовой строке. Если не найден, результатом будет # ЗНАЧ! (#ЦЕНИТЬ).
В случае, если результатом является ошибка, вы можете использовать функцию SEERROR для отображения сообщения вместо ПОИСКА. Функция ЕСЛИОШИБКА была введена в Excel с 2007 года. В более ранних версиях того же результата можно было добиться, используя ЕСЛИ вместе с ЕОШИБКА).
= SEERROR (ПОИСК (B5; B2); «Не найдено")
= SEERROR (ПОИСК (B5; B2); «Не найдено")

Пример 2: Используем символы подстановки с SEARCH (ПОИСК)
Другой способ проверить результат, возвращаемый функцией ПОИСК, на наличие ошибки - использовать функцию ЕЧИСЛО. Если строка найдена, результатом ПОИСКА будет число, что означает, что функция ЕЧИСЛО вернет ИСТИНА. Если текст не найден, ПОИСК сообщит об ошибке, а ЕЧИСЛО вернет ЛОЖЬ).
Вы можете использовать подстановочные знаки в find_text (lookup_text). Символ * (звездочка) заменяет любое количество символов или их отсутствие, а? (вопросительный знак) заменяет любой отдельный символ.
В нашем примере используется подстановочный знак *, поэтому предложения CENTRAL, CENTER и CENTER будут найдены в названиях улиц.
= ЕЧИСЛО (ПОИСК ($ E $ 2; B3))
= ЕЧИСЛО (ПОИСК ($ E $ 2; B3))

Пример 3: Определяем стартовую позицию для SEARCH (ПОИСК)
Если мы напишем два знака минус (двойное отрицание) перед функцией ЕЧИСЛО, она вернет 1/0 вместо ИСТИНА / ЛОЖЬ. Затем функция СУММ в ячейке E2 подсчитает общее количество записей, в которых был найден искомый текст.
В приведенном ниже примере столбец B показывает:
Название города Профессия
Наша задача - найти профессии, содержащие текстовую строку, введенную в ячейку E1. Формула в ячейке C2 будет следующей:
= - ISNUMBER (ПОИСК ($ E $ 1; B2))
= - ISNUMBER (ПОИСК ($ E $ 1; B2))
Эта формула нашла строки, которые содержат слово «банк», но в одной из них это слово встречается не в названии профессии, а в названии города. Это не для нас!

Каждое название города сопровождается символом (вертикальной чертой), поэтому мы можем использовать функцию ПОИСК, чтобы найти местоположение этого символа. Его положение может быть указано как значение аргумента start_num (start_position) в «основной» функции ПОИСК (SEARCH). В результате названия городов будут проигнорированы при поиске.
Теперь проверенная и исправленная формула будет считать только те строки, которые содержат слово «банк» в названии профессии:
= - ЕЧИСЛО (ПОИСК ($ E $ 1; B2; ПОИСК (""; B2)))
= - ЕЧИСЛО (ПОИСК ($ E $ 1; B2; ПОИСК (""; B2)))





