match — функция скриптa и диаграммы
Функция match сравнивает первый параметр со всеми последующими и возвращает числовое значение местоположения для совпадающих выражений. При сравнении учитывается регистр.
Синтаксис:
match( str, expr1 [ , expr2,...exprN ])
В нескольких примерах этого раздела используется встроенная загрузка. Встроенные загрузки
Пример: Скрипт загрузки с использованием match
Скрипт загрузки
Функцию match можно использовать для загрузки подмножества данных. К примеру, можно вернуть числовое значение выражения в функции. Затем можно ограничить загруженные данные с использованием числового значения. При отсутствии совпадений функция Match возвращает 0. Таким образом, в данном примере все выражения, для которых не были найдены совпадения, вернут 0 и будут исключены из загрузки данных при помощи оператора WHERE.
Создайте новую вкладку в редакторе загрузки данных и загрузите следующие данные через встроенную загрузку. Создайте приведенную ниже таблицу ниже в Qlik Sense, чтобы увидеть результаты.
Transactions:
Load * Inline [
transaction_id, transaction_date, transaction_amount, transaction_quantity, customer_id, size, color_code
3750, 20180830, 23.56, 2, 2038593, L, Red
3751, 20180907, 556.31, 6, 203521, m, orange
3752, 20180916, 5.75, 1, 5646471, S, blue
3753, 20180922, 125.00, 7, 3036491, l, Black
3754, 20180922, 484.21, 13, 049681, xs, Red
3756, 20180922, 59.18, 2, 2038593, M, Blue
3757, 20180923, 177.42, 21, 203521, XL, Black
];
/*
Create new table called Transaction_Buckets
Create new fields called Customer, and Color code - Blue and Black
Load Transactions table.
Match returns 1 for 'Blue', 2 for 'Black'.
Does not return a value for 'blue' because match is case sensitive.
Only values that returned numeric value greater than 0
are loaded by WHERE statment into Transactions_Buckets table.
*/
Transaction_Buckets:
Load
customer_id,
customer_id as [Customer],
color_code as [Color Code Blue and Black]
Resident Transactions
Where match(color_code,'Blue','Black') > 0;
Результаты
Color Code Blue and Black | Customer |
---|---|
Black | 203521 |
Black | 3036491 |
Blue | 2038593 |
Примеры: выражения диаграммы с использованием match
Выражение диаграммы 1
Скрипт загрузки
Создайте новую вкладку в редакторе загрузки данных и загрузите следующие данные через встроенную загрузку. После загрузки данных создайте приведенные ниже примеры выражения диаграммы ниже в таблице Qlik Sense.
MyTable:
Load * inline [Cities, Count
Toronto, 123
Toronto, 234
Toronto, 231
Boston, 32
Boston, 23
Boston, 1341
Beijing, 234
Beijing, 45
Beijing, 235
Stockholm, 938
Stockholm, 39
Stockholm, 189
zurich, 2342
zurich, 9033
zurich, 0039];
Первое выражение в таблице ниже возвращает 0 для значения «Stockholm», так как «Stockholm» не входит в список выражений в функции match. Выражение также возвращает 0 для значения «Zurich», так как сравнение match учитывает регистр.
Cities | match( Cities,'Toronto','Boston','Beijing','Zurich') | match( Cities,'Toronto','Boston','Beijing','Stockholm','zurich') |
---|---|---|
Beijing | 3 | 3 |
Boston | 2 | 2 |
Stockholm | 0 | 4 |
Toronto | 1 | 1 |
zurich | 0 | 5 |
Выражение диаграммы 2
Функцию match можно применять для пользовательской сортировки выражений.
По умолчанию сортировка столбцов выполняется в числовом или алфавитном порядке в зависимости от характера данных.
Cities |
---|
Beijing |
Boston |
Stockholm |
Toronto |
zurich |
Чтобы изменить порядок сортировки, выполните следующие действия:
- Откройте раздел Сортировка диаграммы на панели Свойства.
- Выключите автоматическую сортировку столбца, для которого необходимо применить пользовательскую сортировку.
- Отмените выбор параметров Сортировка по численным значениям и Сортировка по алфавиту.
-
Выберите Сортировка по выражению и введите выражение следующего вида:
=match( Cities, 'Toronto','Boston','Beijing','Stockholm','zurich')
Порядок сортировки столбца Cities будет изменен.
Cities |
---|
Toronto |
Boston |
Beijing |
Stockholm |
zurich |
Также можно просмотреть возвращенное числовое значение.
Cities | Cities & ' - ' & match ( Cities, 'Toronto','Boston', 'Beijing','Stockholm','zurich') |
---|---|
Toronto | Toronto - 1 |
Boston | Boston - 2 |
Beijing | Beijing - 3 |
Stockholm | Stockholm - 4 |
zurich | zurich - 5 |