# match — функция скриптa и диаграммы

Функция match сравнивает первый параметр со всеми последующими и возвращает числовое значение местоположения для совпадающих выражений. При сравнении учитывается регистр.

Синтаксис:

match( str, expr1 [ , expr2,...exprN ])

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

В нескольких примерах этого раздела используется встроенная загрузка. [Использование встроенных загрузок для загрузки данных](https://help.qlik.com/ru-RU/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm)

## Пример: Скрипт загрузки с использованием match

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/match.htm)

#### Пример: Скрипт загрузки

Скрипт загрузки

Функцию 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; 
```

Результаты

В таблице Qlik SenseQlik Sense представлены результаты использования функции matchmatch в скрипте загрузки

| Color Code Blue and Black | Customer |
| --- | --- |
| Black | 203521 |
| Black | 3036491 |
| Blue | 2038593 |

## Примеры: выражения диаграммы с использованием match

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/match.htm)

#### Примеры: Выражения диаграммы

Выражение диаграммы 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 учитывает регистр.

В таблице Qlik SenseQlik Sense представлены примеры использования функции matchmatch в выражении диаграммы.

| 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 можно применять для пользовательской сортировки выражений.

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

Таблица Qlik SenseQlik Sense с примером порядка сортировки по умолчанию

| Cities |
| --- |
| Beijing |
| Boston |
| Stockholm |
| Toronto |
| zurich |

Чтобы изменить порядок сортировки, выполните следующие действия:

1. Откройте раздел Сортировка диаграммы на панели Свойства.

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

3. Отмените выбор параметров Сортировка по численным значениям и Сортировка по алфавиту.

4. Выберите Сортировка по выражению и введите выражение следующего вида:

   `=match( Cities, 'Toronto','Boston','Beijing','Stockholm','zurich')`

   Порядок сортировки столбца Cities будет изменен.

Таблица Qlik SenseQlik Sense с примером изменения порядка сортировки при помощи функции matchmatch

| Cities |
| --- |
| Toronto |
| Boston |
| Beijing |
| Stockholm |
| zurich |

Также можно просмотреть возвращенное числовое значение.

Таблица Qlik SenseQlik Sense с примерами числовых значений, возвращенных из функции matchmatch

| Cities | Cities & ' - ' & match ( Cities, 'Toronto','Boston', 'Beijing','Stockholm','zurich') |
| --- | --- |
| Toronto | Toronto - 1 |
| Boston | Boston - 2 |
| Beijing | Beijing - 3 |
| Stockholm | Stockholm - 4 |
| zurich | zurich - 5 |

## Подробнее

* [mixmatch — функция скриптa и диаграммы](https://help.qlik.com/ru-RU/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/mixmatch.htm)
* [wildmatch — функция скриптa и диаграммы](https://help.qlik.com/ru-RU/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/wildmatch.htm)