Поделиться через


Функция SEARCH

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

Синтаксис

SEARCH(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])

Параметры

Термин

Определение

find_text

Текст, который необходимо найти.

Для функции find_text можно использовать такие символы-шаблоны, как (?) и (*). Вопросительный знак служит подстановочным символом для любой отдельно взятой буквы, а звездочка (*) соответствует любой последовательности символов. Если требуется найти именно вопросительный знак или звездочку в тексте, то для функции find_text следует ввести значок тильды (~) перед искомым символом.

within_text

Текст, в котором будет выполняться поиск find_text, или столбец, содержащий текст.

start_num

Положение символа в within_text, с которого следует начинать поиск (необязательно). Если не указано, 1.

NotFoundValue

Значение, которое следует возвращать тогда, когда при выполнении операции не находится подходящая подстрока, обычно 0, -1 или BLANK() (необязательно).

Возвращаемое значение

Номер начальной позиции первой текстовой строки, если считать с первого символа второй текстовой строки.

Замечания

  1. Функция поиска не учитывает регистр символов. При поиске «N» осуществляется поиск первого вхождения «N» или «n».

  2. Функция поиска учитывает диакритические знаки. При поиске «á» осуществляется поиск первого вхождения символа «á», не учитываются символы «a», «à» или «A».

  3. С помощью этой функции можно найти одну текстовую строку внутри второй текстовой строки и возвратить позицию начала первой текстовой строке.

  4. Функцию SEARCH можно использовать для определения положения символа или текстовой строки внутри другой текстовой строки; после чего при помощи функций MID можно вернуть текст или использовать функцию REPLACE, чтобы изменить текст.

  5. Если find_text не может быть найден в within_text, формула возвращает ошибку. Функция Excel работает аналогично и возвращает #ЗНАЧ, если подстрока не найдена. Значения NULL в within_text будут обрабатываться как пустая строка в этом контексте.

Эта функция DAX может возвращать другие результаты при использовании в развернутой модели в режиме DirectQuery. Дополнительные сведения о семантических отличиях в режиме DirectQuery см. по адресу https://go.microsoft.com/fwlink/?LinkId=219171.

Пример Поиск в строке

Описание

Следующая формула ищет положение буквы «н» в слове «принтер».

Код

=SEARCH("n","printer")

Комментарии

Формула вернет 4, потому что «н» является четвертым символом в слове «принтер».

Пример. Поиск в столбце

Описание

В качестве аргумента функции SEARCH можно использовать ссылку на столбец. Следующая формула определяет положение символа «-» (дефис) в столбце [PostalCode].

Код

=SEARCH("-",[PostalCode])

Комментарии

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

Описание

Формула из предыдущего примера завершится ошибкой, если строка поиска не будет найдена в каждой строке исходного столбца. В следующем примере показано, как использовать функцию IFERROR с функцией SEARCH, чтобы гарантировать возвращение допустимого результата для каждой строки.

Следующая формула определяет положение символа «-» в столбце и возвращает значение -1, если строка не найдена.

Код

= IFERROR(SEARCH("-",[PostalCode]),-1)

Комментарии

Заметьте, что тип данных значения, используемого в качестве выхода ошибок, должен совпадать с типом данных обычного выходного типа. В этом случае для вывода в случае ошибки задается числовое значение, поскольку функция SEARCH возвращает целочисленное значение.

Однако также можно возвращать пустое значение (пустую строку), используя BLANK() в качестве второго аргумента функции IFERROR.

См. также

Справочник

Функция MID

Функция REPLACE

Другие ресурсы

Текстовые функции (DAX)