30 функцій Excel за 30 днів: ПОШУК (SEARCH)

Вчора в марафоні ми розпізнавали типи помилок за допомогою функції та переконалися, що вона може бути дуже корисна для виправлення помилок в Excel.

18-й день марафону ми присвятимо вивченню функції SEARCH (ПОШУК). Вона шукає символ (або символи) всередині текстового рядка і повідомляє, де він був знайдений. Ми також розберемо, як впоратися з тими ситуаціями, коли ця функція видає помилку.

Отже, давайте розглянемо уважно теорію і практичні приклади по функції SEARCH (ПОШУК). Якщо у Вас приховані якісь хитрощі або приклади роботи з цією функцією, будь ласка, надсилайте їх в коментарях.

Функція 18: SEARCH (ПОШУК)

функція SEARCH (ПОШУК) шукає текстову рядок всередині іншої текстової рядки, і, якщо знаходить, то повідомляє її позицію.

Як можна використовувати функцію SEARCH (ПОШУК)?

функція SEARCH (ПОШУК) шукає текстову рядок всередині іншої текстової рядки. Вона може:

  • Знайти рядок тексту всередині іншої текстової рядки (без урахування регістру).
  • Використовувати в пошуку символи підстановки.
  • Визначити стартову позицію в просматриваемом тексті.

Синтаксис SEARCH (ПОШУК)

функція SEARCH (ПОШУК) має ось такий синтаксис:

SEARCH (find_text, within_text, [start_num])
ПОШУК (іскомий_текст; текст_для_поіска; [нач_позіція])

  • find_text (Іскомий_текст) – текст, який Ви шукаєте.
  • within_text (Текст_для_поіска) – текстовий рядок, всередині якої відбувається пошук.
  • start_num (Нач_позіція) – якщо не вказано, то пошук почнеться з першого символу.

Пастки SEARCH (ПОШУК)

функція SEARCH (ПОШУК) поверне позицію першої збігається рядки, не залежно від регістру. Якщо Вам потрібен пошук з урахуванням регістру, Ви можете використовувати функцію FIND (ШУКАТИ), з якої ми познайомимося далі в рамках марафону 30 функцій Excel за 30 днів.

Приклад 1: Знаходимо текст в рядку

використовуйте функцію SEARCH (ПОШУК), щоб знайти будь-якої текст всередині текстового рядка. У цьому прикладі ми будемо шукати одиночний символ (введений в осередку B5) всередині текстового рядка, що знаходиться в осередку B2.

= SEARCH (B5, B2)
= ПОШУК (B5; B2)

Якщо текст знайдений, функція SEARCH (ПОШУК) поверне номер позиції його першого символу в текстовому рядку. Якщо не знайдений, результатом буде повідомлення про помилку #VALUE! (# Значить).

У разі, коли результатом є помилка, Ви можете використовувати функцію IFERROR (ЕСЛІОШІБКА), щоб замість виконання функції SEARCH (ПОШУК) вивести відповідне повідомлення. функція IFERROR (ЕСЛІОШІБКА) з’явилася в Excel, починаючи з версії 2007. У більш ранніх версіях той же результат можна було отримати, використовуючи IF (ЯКЩО) разом з ISERROR (ЕОШИБКА).

= IFERROR (SEARCH (B5, B2), “Not Found”)
= ЕСЛІОШІБКА (ПОШУК (B5; B2); “Not Found”)

Приклад 2: Використовуємо символи підстановки з SEARCH (ПОШУК)

Ще один спосіб перевірити результат, що повертається SEARCH (ПОШУК), на наявність помилки – скористатися функцією ISNUMBER (ЕЧІСЛО). Якщо рядок знайдено, результатом SEARCH (ПОШУК) буде число, а це свідчить про те ISNUMBER (ЕЧІСЛО) поверне TRUE (ІСТИНА). Якщо ж текст не знайдений, то SEARCH (ПОШУК) повідомить про помилку, а ISNUMBER (ЕЧІСЛО) поверне FALSE (ЛОЖЬ).

У значенні аргументу find_text (Іскомий_текст) можна використовувати символи підстановки. символ * (Зірочка) замінює будь-яку кількість символів або їх відсутність, а ? (Знак питання) замінює будь-який одиночний символ.

У нашому прикладі використаний символ підстановки *, тому в назвах вулиць будуть знайдені фрази CENTRAL, CENTER і CENTRE.

= ISNUMBER (SEARCH ($ E $ 2, B3))
= ЕЧІСЛО (ПОШУК ($ E $ 2; B3))

Приклад 3: Визначаємо стартову позицію для SEARCH (ПОШУК)

Якщо ми запишемо два знака мінус (подвійне заперечення) перед функцією ISNUMBER (ЕЧІСЛО), то вона поверне значення 1/0 замість TRUE / FALSE (ІСТИНА / БРЕХНЯ). Далі, функція SUM (СУМ) в осередку E2 підрахує сумарна кількість записів, де шуканий текст був знайдений.

У наступному прикладі в стовпці B показані:

Назва міста | професія

Наше завдання знайти професії, що містять текстову рядок, введену в осередку E1. Формула в комірці C2 буде наступна:

= – ISNUMBER (SEARCH ($ E $ 1, B2))
= – ЕЧІСЛО (ПОШУК ($ E $ 1; B2))

Дана формула знайшла рядки, які містять слово “bank”, але в одній з них це слово зустрічається не в назві професії, а в назві міста. Це нас не влаштовує!

Після кожної назви міста стоїть символ | (Вертикальна риса), тому ми, використовуючи функцію SEARCH (ПОШУК), можемо знайти позицію цього символу. Його позиція може бути вказана, як значення аргументу start_num (Нач_позіція) в “головної” функції SEARCH (ПОШУК). В результаті назви міст будуть проігноровані пошуком.

Тепер перевірена і виправлена ​​формула буде вважати тільки ті рядки, які містять слово “bank” в назві професії:

= – ISNUMBER (SEARCH ($ E $ 1, B2, SEARCH ( “|”, B2)))
= – ЕЧІСЛО (ПОШУК ($ E $ 1; B2; ПОШУК ( “|”; B2)))

Ссылка на основную публикацию