Функция SEARCH

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

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

Термин

Определение

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 и возвращает #VALUE, если подстрока не найдена. Значения NULL в within_text будут обрабатываться как пустая строка в этом контексте.

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

Описание

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

Код

=SEARCH("n","printer")

Комментарии

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

Описание

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

Код

=SEARCH("-",[PostalCode])

Комментарии

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

Описание

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

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

Код

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

Комментарии

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

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