# match Fonction de script et de graphique

La fonction match compare le premier paramètre à tous les paramètres suivants et renvoie l'emplacement numérique des expressions qui correspondent. La comparaison est sensible à la casse des caractères.

Syntaxe :

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

Type de données renvoyé : integer

Note ConseilSi vous souhaitez établir des comparaisons sans tenir compte de la casse, utilisez la fonction mixmatch. Si vous souhaitez établir des comparaisons sans tenir compte de la casse avec des caractères génériques, utilisez la fonction wildmatch.

Arguments

| Argument | Description |
| --- | --- |
| str | Chaîne à évaluer. |
| expr1 | Première expression utilisée pour rechercher une représentation numérique valide. |
| expr2 | Deuxième expression utilisée pour rechercher une représentation numérique valide. |
| expr3 | Troisième expression utilisée pour rechercher une représentation numérique valide. |

Exemple : Expressions de graphique

| Exemple | Résultat |
| --- | --- |
| `match( ColorCode,'Blue','Black' )` | Cette expression renvoie l'index de la correspondance au champ `ColorCode`. Si la valeur de `ColorCode` est `Blue`, le résultat est `1`. Si la valeur de `ColorCode` est `Black`, le résultat est `2`. En l'absence de correspondance, la valeur `0` est renvoyée. |
| `match( Region, 'North', 'East' )` | Cette expression renvoie l'index de la correspondance au champ `Region`. Si la valeur de `Region` est `North`, le résultat est `1`. Si la valeur de `Region` est `East`, le résultat est `2`. En l'absence de correspondance, la valeur `0` est renvoyée. |

Certains exemples de cette rubrique utilisent des chargements inline. [Utilisation de chargements inline pour charger des données](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm)

## Exemple - Classification de produits à l'aide de match

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

#### Expression de graphique

Vue d'ensemble

Un jeu de données contient des données de produits. Vous souhaitez identifier et classer les produits qui sont consommables.

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans une table de données appelée `Example`.

* Champs suivants dans la table de données :

  * `ProductID`

  * `ProductName`

  * `ProductCategory`

Script de chargement

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

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* `ProductID`

* `ProductName`

* `ProductCategory`

Créez les mesures suivantes :

* `=match(ProductCategory,'Toiletries', 'Fruits')`, pour renvoyer l'index où `ProductCategory` a la valeur `Toiletries` ou `Fruits`.

* `=If(match(ProductCategory, 'Toiletries', 'Fruits'), 'Consumable', 'Other')`, pour renvoyer l'index où `ProductCategory` a la valeur `Toiletries` ou `Fruits`. Si l'une ou l'autre valeur est trouvée, `Consumable` est renvoyé. Sinon, `Other` est renvoyé.

Tableau de résultats

| 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 fonction `match` renvoie l'index de la chaîne de recherche dans la première mesure. Dans la deuxième mesure, ce résultat est ensuite utilisé dans une fonction `If` pour classer les produits comme `Consumable` ou `Other`.

## Exemple - Évaluation et classement de données client à l'aide de match

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

#### Expression de graphique

Vue d'ensemble

Un jeu de données contient des données client. Vous souhaitez identifier et classer les clients dont la région et le secteur d'activité répondent à vos critères de classification.

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans une table de données appelée `Example`.

* Champs suivants dans la table de données :

  * `ClientID`

  * `ClientName`

  * `Region`

  * `Industry`

Script de chargement

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

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* `ClientID`

* `ClientName`

* `Region`

* `Industry`

Créez la mesure suivante :

`=IF(match(Region, 'North', 'East') AND match(Industry, 'Technology', 'Manufacturing'), 'Target Segment', 'Secondary Segment')`, pour obtenir l'index de la chaîne de recherche. Si cette valeur est trouvée, `Target Segment` est renvoyé. Si cette valeur n'est pas trouvée, `Secondary Segment` est renvoyé.

Tableau de résultats

| 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 fonction `match` recherche un texte et renvoie un index qui peut ensuite être utilisé pour effectuer une analyse et une classification de données supplémentaires. Par exemple, `Acme Corp` est classé comme `Target Segment`, car il répond aux conditions de recherche de la fonction `match` pour les champs `Region` et `Industry`.

## Exemple : Script de chargement utilisant match

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

#### Script de chargement

Vue d'ensemble

La fonction match permet de charger un sous-jeu de données. Par exemple, vous pouvez renvoyer une valeur numérique pour une expression dans la fonction. Vous pouvez ensuite limiter les données chargées en fonction de la valeur numérique. La fonction Match renvoie 0 en l'absence de correspondance. Dans cet exemple, toutes les expressions sans correspondance renverront donc 0 et seront exclues du chargement de données par l'instruction `WHERE`.

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans deux tables de données appelées :

  * `Transactions` : inclut les champs de transaction

  * `Transaction_Buckets` : crée deux nouveaux champs `Customer` et `Color Code Blue and Black`. L'instruction `where` charge les résultats de la fonction `match`.

Script de chargement

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

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* `[Color Code Blue and Black]`

* `Customer`

Tableau de résultats affichant la sortie obtenue suite à l'utilisation de la fonction matchmatch dans le script de chargement

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

## Exemple : Expression de graphique utilisant match

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

#### Expression de graphique

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Jeu de données chargé dans une table de données appelée Example.

* Champs suivants dans la table de données :

  * Cities

  * Count

Script de chargement

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

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :

* Cities

Créez les mesures suivantes :

* =match( Cities,'Toronto','Boston','Beijing','Zurich'), pour obtenir l'index de la chaîne de recherche.

* =match( Cities,'Toronto','Boston','Beijing','Stockholm','zurich'), pour obtenir l'index de la chaîne de recherche.

* =Cities & ' - ' & match ( Cities, 'Toronto','Boston', 'Beijing','Stockholm','zurich'), pour renvoyer le champ Cities et l'index de la chaîne de recherche.

La première mesure du tableau ci-dessous renvoie 0 pour Stockholm, car Stockholm ne figure pas dans la liste d'expressions de la fonction match. Elle renvoie également 0 pour Zurich, car la comparaison match est sensible à la casse.

Tableau de résultats

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

## Exemple : Expression de tri personnalisée utilisant match

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

#### Expression de graphique

Vue d'ensemble

Vous pouvez utiliser match pour effectuer un tri personnalisé pour une expression. Cet exemple utilise le même jeu de données que l'exemple précédent.

Par défaut, les colonnes sont triées par nombre ou par ordre alphabétique, selon les données.

Tableau de résultats affichant l'ordre de tri par défaut

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

Pour modifier l'ordre de tri, procédez comme suit :

1. Ouvrez la section Tri relative au graphique dans le panneau des propriétés.

2. Désactivez le tri automatique défini pour la colonne à laquelle vous souhaitez appliquer un tri personnalisé.

3. Décochez les cases Trier par ordre numérique et Trier par ordre alphabétique.

4. Sélectionnez Trier par expression, puis saisissez une expression semblable à la suivante :

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

   L'ordre de tri appliqué à la colonne Cities est modifié en conséquence.

Tableau de résultats affichant l'ordre de tri à l'aide de la fonction matchmatch

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

## En savoir plus

* [mixmatch Fonction de script et de graphique](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/mixmatch.htm)
* [wildmatch Fonction de script et de graphique](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/wildmatch.htm)