зміст
Вчора на марафоні 30 функцій Excel за 30 днів ми розпізнали типи помилок за допомогою функції ПОМИЛКА.ТИП (ТИП ПОМИЛКИ) і переконався, що це може бути дуже корисним для виправлення помилок у Excel.
18-й день марафону ми присвятимо вивченню функції ПОШУК (ПОШУК). Він шукає символ (або символи) у текстовому рядку та повідомляє, де його було знайдено. Ми також розглянемо, як діяти в ситуаціях, коли ця функція видає помилку.
Отже, давайте детальніше розглянемо теорію та практичні приклади функції ПОШУК (ПОШУК). Якщо у вас є хитрощі або приклади роботи з цією функцією, поділіться ними в коментарях.
Функція 18: ПОШУК
функція ПОШУК (ПОШУК) шукає текстовий рядок в іншому текстовому рядку, і якщо знайдено, повідомляє його позицію.
Як я можу використовувати функцію ПОШУК?
функція ПОШУК (ПОШУК) шукає текстовий рядок в іншому текстовому рядку. Вона може:
- Знайти рядок тексту всередині іншого текстового рядка (незалежно від регістру).
- Використовуйте під час пошуку символи підстановки.
- Визначте вихідну позицію в переглянутому тексті.
Синтаксис ПОШУКУ
функція ПОШУК (SEARCH) має такий синтаксис:
SEARCH(find_text,within_text,[start_num])
ПОИСК(искомый_текст;текст_для_поиска;[нач_позиция])
- знайти_текст (текст_пошуку) — це текст, який ви шукаєте.
- в межах_тексту (text_for_search) – текстовий рядок, у межах якого виконується пошук.
- номер_початку (start_position) – якщо не вказано, пошук розпочнеться з першого символу.
Пастки SEARCH (ПОШУК)
функція ПОШУК (SEARCH) поверне позицію першого відповідного рядка без урахування регістру. Якщо вам потрібен пошук з урахуванням регістру, ви можете скористатися цією функцією ЗНАЙТИ (ЗНАЙДИ), з яким ми зустрінемося пізніше в марафоні 30 функцій Excel за 30 днів.
Приклад 1: Пошук тексту в рядку
Використовуйте функцію ПОШУК (ПОШУК), щоб знайти текст у текстовому рядку. У цьому прикладі ми будемо шукати один символ (введений у клітинку B5) у текстовому рядку в клітинці B2.
=SEARCH(B5,B2)
=ПОИСК(B5;B2)
Якщо текст знайдено, функція ПОШУК (SEARCH) поверне номер позиції свого першого символу в текстовому рядку. Якщо не знайдено, результатом буде повідомлення про помилку #VALUE! (#ТАК).
Якщо результат є помилкою, ви можете скористатися цією функцією ПОМИЛКА (IFERROR), щоб замість виконання функції ПОШУК (SEARCH) відобразить відповідне повідомлення. функція ПОМИЛКА (IFERROR) було введено в Excel, починаючи з версії 2007. У попередніх версіях той самий результат можна було отримати за допомогою IF (ЯКЩО) разом з ПОМИЛКА (ЄОШИБКА).
=IFERROR(SEARCH(B5,B2),"Not Found")
=ЕСЛИОШИБКА(ПОИСК(B5;B2);"Not Found")
Приклад 2: використання символів узагальнення з ПОШУКОМ
Ще один спосіб перевірити отриманий результат ПОШУК (ПОШУК), для помилки – скористатися функцією ІЗНОМ (ISNUMBER). Якщо рядок знайдено, результат ПОШУК (ПОШУК) буде числом, що означає функцію ІЗНОМ (ISNUMBER) поверне TRUE. Якщо текст не знайдено, то ПОШУК (SEARCH) повідомить про помилку, і ІЗНОМ (ISNUMBER) поверне FALSE.
У значенні аргументу знайти_текст (текст для пошуку) можна використовувати символи підстановки. символ * (зірочка) замінює будь-яку кількість символів або жодного, і ? (знак питання) замінює будь-який окремий символ.
У нашому прикладі використовується символ підстановки *, тож у назвах вулиць зустрічатимуться словосполучення ЦЕНТРАЛЬНА, ЦЕНТР, ЦЕНТР.
=ISNUMBER(SEARCH($E$2,B3))
=ЕЧИСЛО(ПОИСК($E$2;B3))
Приклад 3: Визначення початкової позиції для ПОШУКУ (SEARCH)
Якщо ми напишемо два знаки мінус (подвійне заперечення) перед функцією ІЗНОМ (ISNUMBER), він поверне значення 1/0 замість TRUE/FALSE (ІСТИНА/ХИБЬ). Далі функція SUM (SUM) у комірці E2 підраховує загальну кількість записів, у яких було знайдено пошуковий текст.
У наведеному нижче прикладі стовпець B показує:
Назва міста | Професія
Наше завдання — знайти професії, які містять текстовий рядок, введений у клітинку E1. Формула в клітинці C2 буде такою:
=--ISNUMBER(SEARCH($E$1,B2))
=--ЕЧИСЛО(ПОИСК($E$1;B2))
Ця формула знайшла рядки, які містять слово «банк», але в одному з них це слово зустрічається не в назві професії, а в назві міста. Це нам не підходить!
Кожна назва міста супроводжується символом | (вертикальна смуга), тому ми, використовуючи функцію ПОШУК (ПОШУК), ми можемо знайти позицію цього персонажа. Його позицію можна вказати як значення аргументу номер_початку (start_position) у функції «main». ПОШУК (ПОШУК). У результаті назви міст ігноруватимуться під час пошуку.
Тепер перевірена і виправлена формула буде рахувати лише ті рядки, які містять у назві професії слово «банк»:
=--ISNUMBER(SEARCH($E$1,B2,SEARCH("|",B2)))
=--ЕЧИСЛО(ПОИСК($E$1;B2;ПОИСК("|";B2)))