# wildmatch funkcja skryptu i funkcja wykresu

Funkcja wildmatch porównuje pierwszy parametr ze wszystkimi kolejnymi parametrami i zwraca numer pasującego wyrażenia. Umożliwia używanie znaków wieloznacznych ( \* i ?) w ciągach porównawczych. \* dopasowuje dowolną sekwencję znaków. ? dopasowuje dowolny pojedynczy znak. W porównaniu nie jest uwzględniana wielkość liter ani japońskie systemy znaków hiragana i katakana.

Składnia:

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

Typ zwracanych danych: liczba całkowita

Aby dokonywać porównań bez symboli wieloznacznych, należy użyć funkcji match lub mixmatch.

Argumenty

| Argument | Opis |
| --- | --- |
| str | Ciąg znaków do oceny. |
| expr1 | Pierwsze wyrażenie do sprawdzenia poprawnej reprezentacji liczbowej. |
| expr2 | Drugie wyrażenie do sprawdzenia poprawnej reprezentacji liczbowej. |
| expr3 | Trzecie wyrażenie do sprawdzenia poprawnej reprezentacji liczbowej. |

Przykład: wyrażenia wykresu

| Przykład | Wynik |
| --- | --- |
| `wildmatch( ColorCode,'black','*Blue*' )` | To wyrażenie zwraca `1`, jeżeli wartością `ColorCode` jest `Black`, lub `2`, jeżeli wartością `ColorCode` jest `Blue`, `Light Blue` lub `blue`. |
| ` wildmatch( Cities,'toronto','Boston','Beijing','Zurich')  ` | To wyrażenie zwraca indeks elementu pasującego do wartości w polu `Cities`. |

Niektóre przykłady w tym temacie wykorzystują ładowania wbudowane. Więcej informacji zawiera temat [Używanie wbudowanych ładowań do ładowania danych](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

## Przykład — kategoryzacja produktów przy użyciu wildmatch

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

#### Wyrażenie wykresu

Przegląd

Zestaw danych zawiera dane produktów. Chcesz zidentyfikować i sklasyfikować produkty podlegające zużyciu.

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Tabela zawiera następujące pola:

  * `ProductID`

  * `ProductName`

  * `ProductCategory`

Skrypt ładowania

```
Example:
LOAD * INLINE [
ProductID, ProductName, ProductCategory
1, "Laptop", "Electronics"
2, "Banana", "fruit"
3, "Shampoo", "toiletries"
4, "TV", "Electronics"
5, "Apple", "Fruits and vegetables"
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `ProductID`

* `ProductName`

* `ProductCategory`

Utwórz następujące miary:

* `=wildmatch(ProductCategory, 'Toiletries*', 'Fruit*')`, aby zwrócić indeks, w którym `ProductCategory` ma wartość zaczynającą się od `Toiletries` lub od `Fruit`.

* `=If(wildmatch(ProductCategory, 'Toiletries*', 'Fruit*'), 'Consumable', 'Other')`, aby zwrócić indeks, w którym `ProductCategory` ma wartość zaczynającą się od `Toiletries` lub od `Fruits`. Jeśli którykolwiek z nich zostanie znaleziony, zwracane jest `Consumable`. W przeciwnym razie zwracane jest `Other`.

InformacjaFunkcja `wildmatch` zwraca niezerową wartość dodatnią, jeśli znaleziono dopasowanie, lub zero, jeśli nie znaleziono dopasowania. Instrukcja `if` interpretuje z kolei wyniki niezerowe jako `true`, a zerowe jako `false`. Łącząc instrukcję `if` z funkcjami `mixmatch`, `wildmatch` lub `match`, można łatwo dekodować dopasowania i niedopasowania.

Tabela wynikowa

| ProductID | ProductName | ProductCategory | wildmatch(ProductCategory, 'Toiletries\*', 'Fruit\*') | If(wildmatch(ProductCategory, 'Toiletries\*', 'Fruit\*') |
| --- | --- | --- | --- | --- |
| 1 | Laptop | Electronics | 0 | Other |
| 2 | Banana | fruit | 2 | Consumable |
| 3 | Shampoo | toiletries | 1 | Consumable |
| 4 | TV | Electronics | 0 | Other |
| 5 | Apple | Fruits and vegetables | 2 | Consumable |

Funkcja `wildmatch` zwraca indeks szukanego ciągu w pierwszej mierze. W drugiej mierze wynik jest używany w funkcji `If` do dostarczania wyników niestandardowych. Należy pamiętać, że funkcja `wildmatch` nie uwzględnia wielkości liter i dopuszcza symbole wieloznaczne (`*` i `?`).

## Przykład — ocena i klasyfikacja danych klientów przy użyciu wildmatch

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

#### Wyrażenie wykresu

Przegląd

Zestaw danych zawiera dane klientów. Chcesz zidentyfikować i skategoryzować klientów, których region i kategoria branżowa spełniają Twoje wymagania dotyczące klasyfikacji.

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Tabela zawiera następujące pola:

  * `ClientID`

  * `ClientName`

  * `Region`

  * `Industry`

Skrypt ładowania

```
Example:
LOAD * INLINE [ 
ClientID, ClientName, Region, Industry 
1, "Acme Corp", "north territory", "Vehicle Manufacturing" 
2, "Beta Ltd", "East location", "Science & Technology" 
3, "Gamma Inc", "west", "Retail Sales" 
4, "Delta LLC", "North", "Technology" 
5, "Epsilon GmbH", "South", "healthcare" 
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `ClientID`

* `ClientName`

* `Region`

* `Industry`

Utwórz następującą miarę:

`=If(wildmatch(Region, 'North*', 'East*') AND wildmatch(Industry, '*Technology*', '*Manufacturing*'), 'Target Segment', 'Secondary Segment')`, aby zwrócić indeks szukanego ciągu. W razie znalezienia zwracane jest `Target Segment`. Jeżeli nie uda się znaleźć, zwracane jest `Secondary Segment`.

Tabela wynikowa

| ClientID | ClientName | Region | Industry | If(wildmatch(Region, 'North\*', 'East\*') AND wildmatch(Industry, '\*Technology\*', '\*Manufacturing\*'), 'Target Segment', 'Secondary Segment') |
| --- | --- | --- | --- | --- |
| 1 | Acme Corp | north territory | Vehicle Manufacturing | Target Segment |
| 2 | Beta Ltd | East location | Science & Technology | Target Segment |
| 3 | Gamma Inc | west | Retail Sales | Secondary Segment |
| 4 | Delta LLC | North | Technology | Target Segment |
| 5 | Epsilon GmbH | South | healthcare | Secondary Segment |

Funkcja `wildmatch` wyszukuje tekst i zwraca indeks, który można następnie wykorzystać do przeprowadzenia dodatkowej analizy i klasyfikacji danych. Na przykład `Acme Corp` jest klasyfikowana jako `Target Segment`, ponieważ spełnia wymagania wyszukiwania funkcji `wildmatch` zarówno dla pola `Region`, jak i `Industry`. Należy pamiętać, że funkcja `wildmatch` nie uwzględnia wielkości liter i dopuszcza symbole wieloznaczne (`*` i `?`).

## Przykład — skrypt ładowania używający wildmatch

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

#### Skrypt ładowania

Przegląd

Funkcji wildmatch można użyć, aby załadować podzbiór danych. Można na przykład zwrócić wartość liczbową dla wyrażenia w funkcji. Następnie można ograniczyć załadowane dane na podstawie tej wartości liczbowej. W przypadku braku dopasowania funkcja Wildmatch zwraca 0. Wszystkie wyrażenia, dla których nie zostanie znalezione dopasowanie, zwrócą w tym przykładzie 0 i zostaną wykluczone z danych ładowanych przez instrukcję `WHERE`.

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do dwóch tabeli o nazwie:

  * `Transactions`: zawiera pola transakcji

  * `Transaction_Buckets`: tworzy dwa nowe pola `Customer` i `Color code - Black, Blue, blue, red`. Instrukcja `where` ładuje wyniki z funkcji `wildmatch`.

Skrypt ładowania

```
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 - Black, Blue, blue, red
Load Transactions table.
Wildmatch returns 1 for 'Black', 'Blue', and 'blue', and 2 for 'Red'. 
Only values that returned numeric value greater than 0 
are loaded by WHERE statement into Transactions_Buckets table.
*/
 
Transaction_Buckets:
Load
   customer_id,
   customer_id as [Customer],
   color_code as [Color Code Black, Blue, blue, Red]
Resident Transactions
Where wildmatch(color_code,'Bl*','R??') > 0;
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `[Color code - Black, Blue, blue, red]`

* `Customer`

Tabela wynikowa przedstawiająca wynik użycia funkcji wildmatchwildmatch w skrypcie ładowania.

| Color code - Black, Blue, blue, red | Customer |
| --- | --- |
| Black | 203521 |
| Black | 3036491 |
| Blue | 2038593 |
| blue | 5646471 |
| Red | 049681 |
| Red | 2038593 |

## Przykład — wyrażenie wykresu używające wildmatch

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

#### Wyrażenie wykresu

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie Example.

* Tabela zawiera następujące pola:

  * Cities

  * Count

Skrypt ładowania

```
Example:
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];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar:

* Cities

Utwórz następujące miary:

* =wildmatch( Cities,'Tor\*','?ton','Beijing','\*urich') , aby zwrócić indeks szukanego ciągu.

* =wildmatch( Cities,'Tor\*','???ton','Beijing','Stockholm','\*urich'), aby zwrócić indeks szukanego ciągu.

* =Cities & ' - ' & wildmatch ( Cities, 'Tor\*','???ton','Beijing','Stockholm','\*urich'), aby zwrócić pole Cities i indeks szukanego ciągu.

Pierwsze wyrażenie z tabeli poniżej zwraca 0 dla Stockholm, ponieważ Stockholm nie znajduje się na liście wyrażeń w funkcji wildmatch. Zwraca również 0 dla Boston, ponieważ ? pasuje tylko do pojedynczego znaku.

Tabela wynikowa

| Cities | wildmatch( Cities,'Tor\*','?ton','Beijing','\*urich') | wildmatch( Cities,'Tor\*','???ton','Beijing','Stockholm','\*urich') | Cities & ' - ' & wildmatch ( Cities, 'Tor\*','???ton','Beijing','Stockholm','\*urich') |
| --- | --- | --- | --- |
| Beijing | 3 | 3 | Beijing - 3 |
| Boston | 0 | 2 | Boston - 2 |
| Stockholm | 0 | 4 | Stockholm - 4 |
| Toronto | 1 | 1 | Toronto - 1 |
| zurich | 4 | 5 | zurich - 5 |

## Przykład — niestandardowe wyrażenie sortowania używające wildmatch

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

#### Wyrażenie wykresu

Przegląd

Funkcji wildmatch można użyć, aby wykonać niestandardowe sortowanie dla wyrażenia. W tym przykładzie użyto tego samego zestawu danych co w poprzednim przykładzie.

Domyślnie kolumny są posortowane w porządku liczbowym lub alfabetycznym — w zależności od danych.

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar:

* Cities

Tabela wyników pokazująca domyślny porządek sortowania

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

Aby zmienić kolejność sortowania, wykonaj następujące czynności:

1. W panelu Właściwości otwórz sekcję Sortowanie dla wykresu.

2. Wyłącz automatyczne sortowanie dla kolumny, względem której chcesz wykonać sortowanie niestandardowe.

3. Wyczyść pola wyboru Sortuj w kolejności liczbowej i Sortuj alfabetycznie.

4. Zaznacz opcję Sortuj wg wyrażenia, a następnie wprowadź wyrażenie podobne do następującego:

   =wildmatch( Cities, 'Tor\*','???ton','Beijing','Stockholm','\*urich')

   Porządek sortowania w kolumnie Cities ulegnie zmianie.

Tabela aplikacji wynikowa pokazująca porządek sortowania przy użyciu funkcji wildmatchwildmatch

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

## Dowiedz się więcej

* [match funkcja skryptu i funkcja wykresu](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/match.htm)
* [mixmatch funkcja skryptu i funkcja wykresu](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/mixmatch.htm)