# mixmatch - Funzione per script e grafici

La funzione mixmatch confronta il primo parametro con tutti i parametri seguenti e restituisce la posizione numerica delle espressioni corrispondenti. Il confronto non distingue tra caratteri maiuscoli o minuscoli né i sistemi di caratteri del giapponese hiragana e katakana.

Sintassi:

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

Tipo di dati restituiti: numero intero

Se si desidera utilizzare il confronto con distinzione tra lettere minuscole e maiuscole, servirsi della funzione match. 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 dei grafico

| Esempio | Risultato |
| --- | --- |
| `mixmatch( ColorCode,'black','Blue' )` | Questa espressione restituisce `1` se il valore di `ColorCode` è `Black`, oppure `2` se il valore di `ColorCode` è `Blue`. |
| `mixmatch( Cities,'toronto','Boston','Beijing','Zurich' )` | Questa espressione restituisce l'indice dell'elemento che corrisponde al valore nel campo `Cities`. |

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

## Esempio: categorizzazione dei prodotti utilizzando la funzione mixmatch

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/mixmatch.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:

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

* `=If(mixmatch(ProductCategory, 'Toiletries', 'Fruits'), 'Consumable', 'Other')`, per tradurre una corrispondenza `ProductCategory` con `Toiletries` o `Fruits` come `Consumable`. Se non viene trovata alcuna corrispondenza, viene restituito il valore `Other`.

Nota informaticaLa funzione `mixmatch` restituisce un valore positivo non nullo se viene trovata una corrispondenza, altrimenti restituisce zero se non viene trovata alcuna corrispondenza. L'istruzione `if` interpreta a sua volta i risultati non nulli come `true` e i risultati nulli come `false`. Combinando un'istruzione `if` con le funzioni `mixmatch`, `wildmatch` o `match`, è possibile decodificare facilmente le corrispondenze e le mancate corrispondenze.

Tabella dei risultati

| ProductID | ProductName | ProductCategory | mixmatch(ProductCategory,'Toiletries', 'Fruits') | If(mixmatch(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 `mixmatch` restituisce l'indice della stringa di ricerca nella prima misura. Nella seconda misura, questo risultato viene poi utilizzato in una funzione `If` per fornire risultati personalizzati. Notare che la funzione `mixmatch` è non fa distinzione tra maiuscole e minuscole.

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/mixmatch.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(mixmatch(Region, 'North', 'East') AND mixmatch(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(mixmatch(Region, 'North', 'East') AND mixmatch(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 `mixmatch` 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 `mixmatch` per entrambi i campi `Region` e `Industry`. Notare che la funzione `mixmatch` è non fa distinzione tra maiuscole e minuscole.

## Esempio - Script di caricamento usando mixmatch

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

#### Script di caricamento

Panoramica

È possibile utilizzare mixmatch 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. Mixmatch 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 - Black, Blue, blue`. L'istruzione `where` carica i risultati della funzione `mixmatch`.

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 - Black, Blue, blue
Load Transactions table.
Mixmatch returns 1 for 'Black', 2 for 'Blue'. 
Also returns 3 for 'blue' because mixmatch is not 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 - Black, Blue, blue]
Resident Transactions
Where mixmatch(color_code,'Black','Blue') > 0;
```

Risultati

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

* `[Color Code - Black, Blue, blue]`

* `Customer`

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

| Color Code - Black, Blue, blue | Customer |
| --- | --- |
| Black | 203521 |
| Black | 3036491 |
| Blue | 2038593 |
| blue | 5646471 |

## Esempio: espressione del grafico che usa mixmatch

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/mixmatch.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:

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

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

* =Cities & ' - ' & mixmatch ( 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 mixmatch. Restituisce anche il valore 4 per Zurich perché il confronto con mixmatch non fa distinzione tra maiuscole e minuscole.

Tabella dei risultati

| Cities | mixmatch( Cities,'Toronto','Boston','Beijing','Zurich') | mixmatch( Cities,'Toronto','Boston','Beijing','Stockholm','Zurich') | Cities & ' - ' & mixmatch ( 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 | 4 | 5 | zurich - 5 |

## Esempio: espressione di ordinamento personalizzata che usa mixmatch

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

#### Espressione del grafico

Panoramica

È possibile utilizzare mixmatch 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.

Risultati

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

* Cities

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:

   =mixmatch( Cities, 'Toronto','Boston','Beijing','Stockholm','Zurich')

   L'ordinamento della colonna Cities verrà modificato.

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

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

## Ulteriori informazioni

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