Index() выполняет поиск в строке, чтобы найти n-ное положение вхождения указанной подстроки. Дополнительный третий аргумент определяет значение n (1, если игнорируется). Если указано отрицательное значение, поиск выполняется с конца строки. Позиции в строке нумеруются слева направо от 1 и далее.
Синтаксис:
Index(text, substring[, count])
Возвращаемые типы данных: integer
Аргументы
Аргумент
Описание
text
Оригинальная строка.
substring
Строка символов для поиска в text.
Примечание к информацииЕсли подстрока не существует в тексте, Index возвращает 0.
count
Определяет, какое вхождение символов substring искать. Например, значение 2 служит для поиска второго вхождения. Если указано отрицательное значение, поиск выполняется с конца строки.
Пример: выражения диаграммы
Пример
Результат
Index( 'abcdefg', 'cd' )
Возвращает 3
Index( 'abcdabcd', 'b', 2 )
Возвращает 6 (второе вхождение b)
Index( 'abcdabcd', 'b',-2 )
Возвращает 2 (второе вхождение b, начиная с конца)
Left( Date, Index( Date,'-') -1 ) where Date = 1997-07-14
Возвращает 1997
Mid( Date, Index( Date, '-', 2 ) -2, 2 ) where Date = 1997-07-14
Возвращает 07
Index( 'abc', 'x' )
Возвращает 0 (x не существует в строке abc)
Index( 'abc', 'a', 2 )
Возвращает 0 (нет 2-го вхождения a).
Пример. Основы использования функции Index
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, который загружается в таблицу данных под именем Example.
Одно поле в таблице данных под именем InputString.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение:
InputString
Создайте следующие вычисляемые измерения:
=Index(InputString, 'cd')
=Index(InputString, 'e')
=Index(InputString, 'b', -1)
Результирующая таблица
InputString
Index(InputString, 'cd')
Index(InputString, 'e')
Index(InputString, 'b', -1)
abcdabcd
3
0
6
abcdefg
3
5
2
Первая строка со строковым значением abcdabcd возвращает:
3 ― первое вхождение cd
0 ― так как e не найден в строке.
6 ― первое вхождение b с конца строки
Вторая строка со строковым значением abcdefg возвращает:
3 ― первое вхождение cd
5 ― первое вхождение e
2 ― первое вхождение b с конца строки
Примечание к информацииПри отрицательном значении параметра count сканирование строки выполняется в обратном направлении. Однако возвращаемая позиция всегда обозначается слева направо, даже если сканирование происходит в обратном направлении.
Следующий код показывает, как использовать эту функцию в скрипте загрузки.
Example:
Load
*,
index(String, 'cd') as Index_CD, // returns 3 in Index_CD
index(String, 'b') as Index_B, // returns 2 in Index_B
index(String, 'b', -1) as Index_B2; // returns 2 or 6 in Index_B2
Load * inline [
String
abcdefg
abcdabcd ];
Результирующая таблица
Строка
Index_CD
Index_B
Index_B2
abcdefg
3
2
2
abcdabcd
3
2
6
Пример. Сценарий использования функции Index
Обзор
Центр поддержки клиентов имеет набор данных, содержащий строки тем из электронных писем клиентов. Центр поддержки хочет распределить эти письма по категориям на основе ключевых слов, которые встречаются в теме письма, например Refund, Complaint и Technical Issue. Строки темы хранятся в поле набора данных под названием EmailSubject.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, который загружается в таблицу данных под именем Example.
Одно поле в таблице данных под именем EmailSubject.
Скрипт загрузки
Example:
Load * inline [
EmailSubject
Request for a Refund - Order 12345
Technical Issue with Product XYZ
Complaint about delivery service
Follow-up on Refund Request
Technical Issue not resolved
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение:
EmailSubject
Создайте следующее вычисляемое измерение:
=If(Index(EmailSubject, 'Refund') > 0, 'Refund', 'Other'), чтобы вычислить, какой текст темы письма относится к возврату денег.
Вывод функции Index успешно определяет все строки темы, содержащие текстовую строку Refund. Это пример того, как можно анализировать и классифицировать данные с помощью вложенных функций и предоставлять пользователям значение.
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!