# match Funzione per script e grafici

La funzione match confronta il primo parametro con tutti i parametri seguenti e restituisce la posizione numerica delle espressioni corrispondenti. Il confronto rispetta la distinzione maiuscole/minuscole.

Sintassi:

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

Tipo di dati restituiti: numero intero

Nota di suggerimentoSe si desidera utilizzare il confronto senza distinzione tra lettere minuscole e maiuscole, servirsi della funzione mixmatch. Se si desidera utilizzare il confronto senza distinzione tra lettere minuscole e maiuscole e i caratteri speciali, servirsi della funzione wildmatch.

Argomenti

| Argomento | Descrizione |
| --- | --- |
| str | La stringa da valutare. |
| expr1 | La prima espressione da controllare per una valida rappresentazione numerica. |
| expr2 | La seconda espressione da controllare per una valida rappresentazione numerica. |
| expr3 | La terza espressione da controllare per una valida rappresentazione numerica. |

Esempio: espressioni del grafico

| Esempio | Risultato |
| --- | --- |
| `match( ColorCode,'Blue','Black' )` | Questa espressione restituisce l'indice della corrispondenza per il campo `ColorCode`. Se il valore di `ColorCode` è `Blue`, viene restituito il valore `1`. Se il valore di `ColorCode` è `Black`, viene restituito il valore `2`. Se non viene trovata alcuna corrispondenza, viene restituito il valore `0`. |
| `match( Region, 'North', 'East' )` | Questa espressione restituisce l'indice della corrispondenza per il campo `Region`. Se il valore di `Region` è `North`, viene restituito il valore `1`. Se il valore di `Region` è `East`, viene restituito il valore `2`. Se non viene trovata alcuna corrispondenza, viene restituito il valore `0`. |

Alcuni degli esempi in questo argomento utilizzano caricamenti inline. [Utilizzo dei caricamenti inline per caricare i dati](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm)

## Esempio: categorizzazione dei prodotti utilizzando la funzione match

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

#### Espressione del grafico

Panoramica

Un set di dati contiene i dati dei prodotti.Si desidera identificare e classificare i prodotti di consumo.

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* I seguenti campi nella tabella dati:

  * `ProductID`

  * `ProductName`

  * `ProductCategory`

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `ProductID`

* `ProductName`

* `ProductCategory`

Creare le seguenti misure:

* `=match(ProductCategory,'Toiletries', 'Fruits')`, per restituire l'indice in cui `ProductCategory` ha il valore `Toiletries` o `Fruits`.

* `=If(match(ProductCategory, 'Toiletries', 'Fruits'), 'Consumable', 'Other')`, per restituire l'indice in cui `ProductCategory` ha il valore `Toiletries` o `Fruits`. Se viene trovato uno dei due, viene restituito il valore `Consumable`. Altrimenti, viene restituito il valore `Other`.

Tabella dei risultati

| ProductID | ProductName | ProductCategory | match(ProductCategory,'Toiletries', 'Fruits') | If(match(ProductCategory, 'Toiletries', 'Fruits'), 'Consumable', 'Other') |
| --- | --- | --- | --- | --- |
| 1 | Laptop | Electronics | 0 | Other |
| 2 | Banana | Fruits | 2 | Consumable |
| 3 | Shampoo | Toiletries | 1 | Consumable |
| 4 | TV | Electronics | 0 | Other |
| 5 | Apple | Fruits | 2 | Consumable |

La funzione `match` restituisce l'indice della stringa di ricerca nella prima misura. Nella seconda misura, questo risultato viene poi utilizzato in una funzione `If` per classificare i prodotti come `Consumable` o `Other`.

## Esempio: valutazione e classificazione dei dati dei clienti utilizzando la funzione match

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

#### Espressione del grafico

Panoramica

Un set di dati contiene i dati dei clienti.Si desidera identificare e classificare i clienti la cui regione e categoria aziendale soddisfano i requisiti di classificazione della propria organizzazione.

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* I seguenti campi nella tabella dati:

  * `ClientID`

  * `ClientName`

  * `Region`

  * `Industry`

Script di caricamento

```
Example:
LOAD * INLINE [
ClientID, ClientName, Region, Industry
1, "Acme Corp", "North", "Manufacturing"
2, "Beta Ltd", "East", "Technology"
3, "Gamma Inc", "West", "Retail"
4, "Delta LLC", "North", "Technology"
5, "Epsilon GmbH", "South", "Healthcare"
];
```

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `ClientID`

* `ClientName`

* `Region`

* `Industry`

Creare la seguente misura:

`=IF(match(Region, 'North', 'East') AND match(Industry, 'Technology', 'Manufacturing'), 'Target Segment', 'Secondary Segment')`, per restituire l'indice della stringa di ricerca. Se viene trovato, viene restituito il valore `Target Segment`. Se non viene trovato, viene restituito il valore `Secondary Segment`.

Tabella dei risultati

| ClientID | ClientName | Region | Industry | IF(match(Region, 'North', 'East') AND match(Industry, 'Technology', 'Manufacturing'), 'Target Segment', 'Secondary Segment') |
| --- | --- | --- | --- | --- |
| 1 | Acme Corp | North | Manufacturing | Target Segment |
| 2 | Beta Ltd | East | Technology | Target Segment |
| 3 | Gamma Inc | West | Retail | Secondary Segment |
| 4 | Delta LLC | North | Technology | Target Segment |
| 5 | Epsilon GmbH | South | Healthcare | Secondary Segment |

La funzione `match` cerca il testo e restituisce un indice che può essere utilizzato per eseguire ulteriori analisi e classificazioni dei dati. Per esempio, il campo `Acme Corp` è classificato come `Target Segment` perché soddisfa i requisiti di ricerca della funzione `match` per entrambi i campi `Region` e `Industry`.

## Esempio: script di caricamento che usa match

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

#### Script di caricamento

Panoramica

È possibile utilizzare match per caricare un sottogruppo dei dati. Ad esempio, è possibile restituire un valore numerico per un'espressione nella funzione. È quindi possibile limitare i dati caricati in base al valore numerico. La funzione Match restituisce 0 se non vi sono corrispondenze. Tutte le espressioni senza corrispondenze in questo esempio restituiranno quindi 0 e saranno escluse dal caricamento dei dati dall'istruzione `WHERE`.

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in due tabelle dati denominate:

  * `Transactions`: include i campi delle transazioni

  * `Transaction_Buckets`: crea due nuovi campi, `Customer` e `Color Code Blue and Black`. L'istruzione `where` carica i risultati della funzione `match`.

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `[Color Code Blue and Black]`

* `Customer`

La tabella dei risultati che mostra l'output derivante dall'utilizzo della funzione matchmatch nello script di caricamento

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

## Esempio: espressione del grafico che usa match

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

#### Espressione del grafico

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata Example.

* I seguenti campi nella tabella dati:

  * Cities

  * Count

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione:

* Cities

Creare le seguenti misure:

* =match( Cities,'Toronto','Boston','Beijing','Zurich'), per restituire l'indice della stringa di ricerca.

* =match( Cities,'Toronto','Boston','Beijing','Stockholm','zurich'), per restituire l'indice della stringa di ricerca.

* =Cities & ' - ' & match ( Cities, 'Toronto','Boston', 'Beijing','Stockholm','zurich'), per restituire il campo Cities e l'indice della stringa di ricerca.

La prima misura nella tabella sottostante restituisce 0 per Stockholm perché il valore Stockholm non è incluso nell'elenco di espressioni nella funzione match. Restituisce anche il valore 0 per Zurich perché il confronto con match distingue tra maiuscole e minuscole.

Tabella dei risultati

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

## Esempio: espressione di ordinamento personalizzata che usa match

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

#### Espressione del grafico

Panoramica

È possibile utilizzare match per eseguire un ordinamento personalizzato per un'espressione. Questo esempio utilizza lo stesso set di dati dell'esempio precedente.

Per impostazione predefinita, le colonne vengono ordinate numericamente o alfabeticamente a seconda dei dati.

Tabella dei risultati che mostra l'ordinamento predefinito

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

Per cambiare l'ordinamento, fare quanto segue:

1. Aprire la sezione Ordinamento del grafico nel pannello Proprietà.

2. Disattivare l'ordinamento automatico per la colonna su cui si desidera eseguire un ordinamento personalizzato.

3. Deselezionare le caselle di controllo Ordina per numero e Ordina per lettera.

4. Selezionare Ordina per espressione e quindi inserire un'espressione simile alla seguente:

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

   L'ordinamento della colonna Cities verrà modificato.

Tabella dei risultati che mostra l'ordinamento usando la funzione matchmatch

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

## Ulteriori informazioni

* [mixmatch Funzione per script e grafici](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/mixmatch.htm)
* [wildmatch Funzione per script e grafici](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/wildmatch.htm)