Функция SEARCH (DAX)
Возвращает номер позиции, начиная с которой обнаружен указанный символ или текстовая строка, если считать слева направо. Поиск выполняется с учетом регистра символов.
Синтаксис
SEARCH(<find_text>, <within_text>, [start_num])
Параметры
Элемент |
Определение |
|---|---|
find_text |
Текст, который необходимо найти. |
within_text |
Текст, в котором будет выполняться поиск find_text, или столбец, содержащий текст. |
start_num |
Положение символа в within_text, с которого следует начинать поиск (необязательно). Если не указано, 1. |
Значение свойства/возвращаемое значение
Номер начальной позиции первой текстовой строки, если считать с первого символа второй текстовой строки.
Замечания
С помощью этой функции можно найти одну текстовую строку внутри второй текстовой строки и возвратить позицию начала первой текстовой строке.
Функцию SEARCH можно использовать для определения положения символа или текстовой строки внутри другой текстовой строки; после чего при помощи функций MID можно вернуть текст или использовать функцию REPLACE, чтобы изменить текст.
Если find_text не может быть найден в within_text, формула возвращает ошибку. Функция Excel работает аналогично и возвращает #ЗНАЧ, если подстрока не найдена. Значения NULL в within_text будут обрабатываться как пустая строка в этом контексте.
Пример. Поиск в строке
Описание
Следующая формула ищет положение буквы «н» в слове «принтер».
Код
=SEARCH("n","printer")
Комментарии
Формула вернет 4, потому что «н» является четвертым символом в слове «принтер».
Пример. Поиск в столбце
Описание
В качестве аргумента функции SEARCH можно использовать ссылку на столбец. Следующая формула определяет положение символа «-» (дефис) в столбце [PostalCode].
Код
=SEARCH("-",[PostalCode])
Комментарии
Возвращаемый результат представляет столбец чисел, указывающих индекс дефиса.
Пример. Обработка ошибок в функции SEARCH
Описание
Формула из предыдущего примера завершится ошибкой, если строка поиска не будет найдена в каждой строке исходного столбца. В следующем примере показано, как использовать функцию IFERROR с функцией SEARCH, чтобы гарантировать возвращение допустимого результата для каждой строки.
Следующая формула определяет положение символа «-» в столбце и возвращает значение -1, если строка не найдена.
Код
= IFERROR(SEARCH("-",[PostalCode]),-1)
Комментарии
Заметьте, что тип данных значения, используемого в качестве выхода ошибок, должен совпадать с типом данных обычного выходного типа. В этом случае для вывода в случае ошибки задается числовое значение, поскольку функция SEARCH возвращает целочисленное значение.
Однако также можно возвращать пустое значение (пустую строку), используя BLANK() в качестве второго аргумента функции IFERROR.