# wildmatch Skript- och diagramfunktion

Funktionen wildmatch jämför den första parametern med alla de följande och returnerar antalet uttryck som matchar. Den gör det möjligt att använda jokertecken ( \* och ?) i jämförelsesträngarna. \* matchar alla följder av tecken. ? matchar alla enstaka tecken. Jämförelsen är inte skiftlägeskänslig och är okänslig för de japanska teckensystemen hiragana och katakana.

Syntax:

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

Returnerad datatyp: heltal

Om du vill använda en jämförelse utan jokertecken, ska du använda funktionerna match eller mixmatch.

Argument

| Argument | Beskrivning |
| --- | --- |
| str | Strängen som ska utvärderas. |
| expr1 | Det första uttrycket som ska kontrolleras om det har ett giltigt numeriskt värde. |
| expr2 | Det andra uttrycket som ska kontrolleras om det har ett giltigt numeriskt värde. |
| expr3 | Det tredje uttrycket som ska kontrolleras om det har ett giltigt numeriskt värde. |

Exempel: diagramuttryck

| Exempel | Resultat |
| --- | --- |
| `wildmatch( ColorCode,'black','*Blue*' )` | Detta uttryck returnerar `1` om värdet för `ColorCode` är `Black` eller `2` om värdet för `ColorCode` är `Blue` eller `Light Blue` eller `blue`. |
| ` wildmatch( Cities,'toronto','Boston','Beijing','Zurich')  ` | Detta uttryck returnerar indexet för det objekt som matchar värdet i `Cities`-fältet. |

Vissa exempel i det här ämnet använder inline-laddningar. [Använda inline-laddningar för att ladda data](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm)

## Exempel – Kategorisera produkter med hjälp av wildmatch

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

#### Diagramuttryck

Översikt

En datauppsättning innehåller produktdata. Du vill identifiera och kategorisera förbrukningsbara produkter.

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter `Example`.

* Följande fält i datatabellen:

  * `ProductID`

  * `ProductName`

  * `ProductCategory`

Laddningsskript

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

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

* `ProductID`

* `ProductName`

* `ProductCategory`

Skapa följande mått:

* `=wildmatch(ProductCategory, 'Toiletries*', 'Fruit*')`, för att returnera det index där `ProductCategory` har värdet som börjar med `Toiletries` eller börjar med `Fruit`.

* `=If(wildmatch(ProductCategory, 'Toiletries*', 'Fruit*'), 'Consumable', 'Other')`, för att returnera det index där `ProductCategory` har värdet som börjar med `Toiletries` eller börjar med `Fruits`. Om någon av dem hittas returneras `Consumable`. I annat fall returneras `Other`.

Anteckning om informationFunktionen `wildmatch` returnerar ett positivt värde som inte är noll om en matchning hittas, annars noll om ingen matchning hittas. `if`-satsen tolkar i sin tur resultat som inte är noll som `true` och resultat som är noll som `false`. Genom att kombinera en `if`-sats med funktionerna `mixmatch`, `wildmatch` eller `match`, är det möjligt att enkelt avkoda matchningar och felmatchningar.

Resultattabell

| 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 |

`wildmatch`-funktionen returnerar indexet för söksträngen i det första måttet. I den andra åtgärden används detta resultat sedan i en `If`-funktion för att ge anpassade resultat. Observera att funktionen `wildmatch` inte är skiftlägeskänslig och tillåter jokertecken (`*` och `?`).

## Exempel – Utvärdera och klassificera kunddata med hjälp av wildmatch

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

#### Diagramuttryck

Översikt

En datauppsättning innehåller kunddata. Du vill identifiera och kategorisera de kunder vars region och branschkategori uppfyller dina klassificeringskrav.

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter `Example`.

* Följande fält i datatabellen:

  * `ClientID`

  * `ClientName`

  * `Region`

  * `Industry`

Laddningsskript

```
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" 
];
```

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

* `ClientID`

* `ClientName`

* `Region`

* `Industry`

Skapa följande mått:

`=If(wildmatch(Region, 'North*', 'East*') AND wildmatch(Industry, '*Technology*', '*Manufacturing*'), 'Target Segment', 'Secondary Segment')`, för att returnera indexet för söksträngen. Om det hittas returneras `Target Segment`. Om det inte hittas returneras `Secondary Segment`.

Resultattabell

| 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 |

`wildmatch`-funktionen söker efter text och returnerar ett index som sedan kan användas för att utföra ytterligare analyser och dataklassificering. Exempelvis klassificeras `Acme Corp` som ett `Target Segment` eftersom det uppfyller `wildmatch`-funktionens sökkrav för fälten `Region` och `Industry`. Observera att funktionen `wildmatch` inte är skiftlägeskänslig och tillåter jokertecken (`*` och `?`).

## Exempel: laddningsskript som använder wildmatch

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

#### Laddningsskript

Översikt

Du kan använda wildmatch för att ladda en delmängd av dina data. Du kan till exempel returnera ett numeriskt värde för ett uttryck i funktionen. Sedan kan du begränsa vilka data som laddas utifrån det numeriska värdet. Wildmatch returnerar 0 om det inte finns någon matchning. Alla uttryck som inte har någon matchning i det här exemplet returnerar därför 0 och `WHERE`-satsen utesluter dem från dataladdningen.

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som läses in i två datatabeller som heter:

  * `Transactions`: Innehåller transaktionsfält

  * `Transaction_Buckets`: Skapar två nya fält `Customer` och `Color code - Black, Blue, blue, red`. `where`-satsen läser in resultaten från `wildmatch`-funktionen.

Laddningsskript

```
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;
```

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

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

* `Customer`

Resultattabellen visar utdata vid användning av wildmatchwildmatch-funktionen i laddningsskriptet.

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

## Exempel – diagramuttryck som använder wildmatch

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

#### Diagramuttryck

Översikt

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter Example.

* Följande fält i datatabellen:

  * Cities

  * Count

Laddningsskript

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

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:

* Cities

Skapa följande mått:

* =wildmatch( Cities,'Tor\*','?ton','Beijing','\*urich') , för att returnera indexet för söksträngen.

* =wildmatch( Cities,'Tor\*','???ton','Beijing','Stockholm','\*urich'), för att returnera indexet för söksträngen.

* =Cities & ' - ' & wildmatch ( Cities, 'Tor\*','???ton','Beijing','Stockholm','\*urich'), för att returnera Cities-fältet och indexet för söksträngen.

Det första måttet i tabellen nedan returnerar 0 för Stockholm, eftersom Stockholminte finns med i listan med uttryck i wildmatch-funktionen. Den returnerar också 0 för Boston eftersom ? bara matchar på ett enda tecken.

Resultattabell

| 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 |

## Exempel – anpassat diagramuttryck som använder wildmatch

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

#### Diagramuttryck

Översikt

Du kan använda wildmatch för att utföra en anpassad sortering för ett uttryck. I det här exemplet används samma datauppsättning som i föregående exempel.

Som standard sorteras kolumner numeriskt eller alfabetiskt, beroende på datatyp.

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:

* Cities

Resultattabell som visar standardsorteringsordningen

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

Gör följande för att ändra sorteringsordningen:

1. Öppna delavsnittet Sortering för ditt diagram i egenskapspanelen.

2. Inaktivera automatisk sortering för den kolumn du vill använda anpassad sortering för.

3. Radera kryssrutorna Sortera numeriskt och Sortera alfabetiskt.

4. Välj Sortera efter uttryck och ange sedan ett uttryck som liknar följande:

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

   Sorteringsordningen för kolumnen Cities ändras.

Resultattabell som visar sorteringsordningen med hjälp av wildmatchwildmatch-funktionen

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

## Mer information

* [match Skript- och diagramfunktion](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/match.htm)
* [mixmatch Skript- och diagramfunktion](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/mixmatch.htm)