ПОИСК Fx - найти подстроку в строке - Excel, VBA и G Sheets

Скачать пример рабочей книги

Загрузите образец книги

В этом руководстве показано, как использовать Функция ПОИСК в Excel в Excel, чтобы определить положение текста в ячейке.

Обзор функции ПОИСК

Функция ПОИСК находит символ или текстовую строку и возвращает ее позицию в ячейке. Нечувствительный к регистру.

Чтобы использовать функцию ПОИСК на листе Excel, выберите ячейку и введите:

(Обратите внимание, как появляются входные данные формулы)

Синтаксис и входы функции поиска:

= ПОИСК (найти_текст; внутри_текст; начальное_число)

find_text - Строка текста, которую вы хотите найти.

внутри_текст - Исходная строка текста.

start_num - ПО ЖЕЛАНИЮ. Номер символа, с которого следует начать поиск. Примечание. Это изменяет только диапазон поиска, но не влияет на число, возвращаемое при обнаружении совпадения. Пример: поиск «s» в строке «suns» по умолчанию вернет 1, но если start_num установлен на 2, он вернет 4.

Что такое функция ПОИСК?

Функция ПОИСК в Excel «ищет» строку текста внутри другой строки. Если текст найден, ПОИСК возвращает числовую позицию строки.

ПОИСК НЕ чувствителен к регистру. Это означает, что «текст» будет соответствовать «ТЕКСТУ». Для поиска текста с учетом регистра используйте вместо этого функцию НАЙТИ <>.

Как использовать функцию ПОИСКА

Функция ПОИСК в Excel работает следующим образом:

= ПОИСК («е»; «слон»)

Здесь Excel вернет 1, поскольку «e» - это первый символ в «слоне».

Ниже приведены еще несколько примеров.

Начальный номер (start_num)

При желании вы можете определить начальный номер (start_num). start_num сообщает функции ПОИСК, где начать поиск. Если вы оставите поле пустым, поиск начнется с первого символа.

= ПОИСК (B3; C3)

Теперь давайте установим start_num равным 2, что означает, что ПОИСК начнет поиск со второго символа.

= ПОИСК (B3; C3; D3)

В этом случае ПОИСК возвращает 3: позицию второго «е».

Важно: start_num не влияет на возвращаемое значение, SEARCH всегда начинает отсчет с первого символа.

Начальный номер (start_num) Ошибки

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

= ПОИСК (B3; C3; D3)

Неудачные поиски возвращают #VALUE! Ошибка

Если ПОИСК не может найти искомое значение, Excel вернет #VALUE! ошибка.

Поиск без учета регистра

Пример ниже демонстрирует, что функция ПОИСК не чувствительна к регистру. Мы искали «abc», но ПОИСК вернул 1, потому что он соответствует «ABC».

Поиск с подстановочными знаками

В ПОИСКЕ можно использовать подстановочные знаки, которые позволяют искать неуказанные символы.

Знак вопроса в тексте поиска означает «любой символ». Таким образом, «? 000» в приведенном ниже примере означает «Искать любой символ, за которым следуют три нуля».

Звездочка означает «любое количество неизвестных символов». Здесь мы ищем «1 * C», и ПОИСК возвращает 2, потому что он соответствует этому с «1-ABC».

В следующем примере мы ищем «000?» - то есть «000», за которым следует любой символ. У нас есть «000», но он стоит в конце строки и, следовательно, не сопровождается никакими символами, поэтому мы получаем ошибку.

Однако, если мы использовали звездочку вместо вопросительного знака, то есть «000 *» вместо «000?», Мы получим совпадение. Это потому, что звездочка означает «любое количество символов», включая отсутствие символов.

Как разделить имя и фамилию из ячейки с помощью ПОИСКА

Если у вас есть имя и фамилия в одной и той же ячейке, и вы хотите дать каждому из них по ячейке, вы можете использовать для этого ПОИСК, но вам также потребуется использовать несколько других функций.

Получение имени

Функция LEFT Excel возвращает определенное количество символов из строки, начиная слева.

Если мы используем ПОИСК, чтобы вернуть позицию пробела между именем и фамилией, вычтите из него 1, и мы узнаем, сколько длины у имени. Затем мы можем просто передать это ВЛЕВО.

Формула первого имени:

= ВЛЕВО (B3; ПОИСК (««; B3) -1)

Получение фамилии

Функция Excel ПРАВО возвращает определенное количество символов справа от строки.

Чтобы получить количество символов, равное длине фамилии, мы используем ПОИСК, чтобы сообщить нам положение пробела, а затем вычитаем это число из общей длины строки, которую мы можем получить с помощью LEN.

Формула фамилии:

= ВПРАВО (B3; LEN (B3) -ПОИСК (««, B3))

Обратите внимание, что если данные вашего имени содержат отчество, оно будет разделено на ячейку «Фамилия».

Использование ПОИСКА для возврата n-го символа в строке

Как отмечалось выше, ПОИСК возвращает позицию первого найденного совпадения. Но, объединив его с CHAR и SUBSTITUTE, мы можем использовать его для поиска более поздних вхождений символа, например второго или третьего экземпляра.

Вот формула:

= ПОИСК (СИМВОЛ (134); ПОДСТАВИТЬ (D3; C3; СИМВОЛ (134); B3))

Сначала это может показаться немного сложным, поэтому давайте разберемся:

  • Мы используем ПОИСК, и ищем строку «CHAR (134)». CHAR возвращает символ на основе его кода ASCII. CHAR (134) - это символ кинжала - вы можете использовать здесь что угодно, если только оно не появляется в вашей реальной строке.
  • SUBSTITUTE перебирает строку и заменяет один символ или подстроку другим. Здесь мы заменяем строку, которую хотим найти (которая находится в C3), на CHAR (134). Причина, по которой это работает, заключается в том, что четвертый параметр SUBSTITUTE - это номер экземпляра, который мы сохранили в B3.
  • Итак, SUBSTITUTE меняет местами n-й символ в строке на символ кинжала, а затем SEARCH возвращает его позицию.

Вот как это выглядит:

Нахождение средней части строки

Представьте, что у вас есть много серийных номеров в следующем формате:

AB1XCDC-1BB / BB99

Вас попросили вытащить среднюю часть каждого из них. Вместо того, чтобы делать это вручную, вы можете комбинировать ПОИСК с MID, чтобы автоматизировать эту задачу.

Функция MID Excel возвращает часть строки. Его входными данными являются текстовая строка, начальная точка и количество символов.

Поскольку желаемой начальной точкой является символ после дефиса, мы можем использовать ПОИСК, чтобы получить позицию дефиса и добавить к нему 1. Если бы серийный номер был в B3, мы бы использовали:

= ПОИСК ("-"; B3) +1

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

= ПОИСК ("/"; B3) -ПОИСК ("-"; B3) -1

Затем мы просто вставляем эти две формулы в MID:

ПОИСК против НАЙТИ

ПОИСК и НАЙТИ - похожие функции. Оба они возвращают позицию данного символа или подстроки в другой строке. Однако есть два ключевых отличия:

  • НАЙТИ чувствителен к регистру, а ПОИСК нет.
  • НАЙТИ не допускает подстановочные знаки, а ПОИСК

Вы можете увидеть несколько примеров этих различий ниже:

ПОИСК в Google Таблицах

Функция ПОИСК в Google Таблицах работает точно так же, как и в Excel:

Дополнительные замечания

Функция ПОИСК является версией функции НАЙТИ без учета регистра. ПОИСК также поддерживает подстановочные знаки. Найти не получается.

Примеры ПОИСКА в VBA

Вы также можете использовать функцию ПОИСК в VBA. Тип:
application.worksheetfunction.search (найти_текст, внутри_текста, начальное_число)
Для аргументов функции (find_text и т. Д.) Вы можете либо ввести их непосредственно в функцию, либо определить переменные для использования вместо них.

Вернуться к списку всех функций в Excel

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

wave wave wave wave wave