wildmatch - fonction de script et fonction de graphique
La fonction wildmatch compare le premier paramètre à tous les paramètres suivants et renvoie le numéro de l'expression qui correspond. Cela permet d'utiliser des caractères génériques ( * et ?) dans les chaînes de comparaison. * met en correspondance toute séquence de caractères. ? met en correspondance un seul caractère, quel qu'il soit. La comparaison n'est pas sensible à la casse ni aux systèmes de caractères japonais Hiragana et Katakana.
wildmatch( str, expr1 [ , expr2,...exprN ])
Si vous souhaitez établir des comparaisons sans tenir compte des caractères génériques, utilisez les fonctions match ou mixmatch.
Certains exemples de cette rubrique utilisent des chargements inline. Utilisation de chargements inline pour charger des données
Exemple : Script de chargement avec wildmatch
Script de chargement
La fonction wildmatch permet de charger un sous-ensemble 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 d'après la valeur numérique. Wildmatch 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.
Créez un nouvel onglet dans l'éditeur de chargement de données, puis chargez les données suivantes sous forme de chargement inline. Créez le tableau ci-dessous dans Qlik Sense pour afficher les résultats.
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;
Résultats
Color Code Black, Blue, blue, Red | Customer |
---|---|
Black | 203521 |
Black | 3036491 |
Blue | 2038593 |
Blue | 5646471 |
Red | 049681 |
Red | 2038593 |
Exemples : Expressions de graphique avec wildmatch
Expression de graphique 1
Créez un nouvel onglet dans l'éditeur de chargement de données, puis chargez les données suivantes sous forme de chargement inline. Après avoir chargé les données, créez les exemples d'expression de graphique ci-dessous dans un tableau Qlik Sense.
MyTable: 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];
La première expression de la table ci-dessous renvoie 0 pour Stockholm, car « Stockholm » ne figure pas dans la liste d'expressions de la fonction wildmatch. Elle renvoie également 0 pour « Boston », car ? correspond uniquement à un caractère unique.
Cities | wildmatch( Cities,'Tor*','?ton','Beijing','*urich') | wildmatch( Cities,'Tor*','???ton','Beijing','Stockholm','*urich') |
---|---|---|
Beijing |
3 |
3 |
Boston | 0 | 2 |
Stockholm | 0 | 4 |
Toronto | 1 | 1 |
zurich | 4 | 5 |
Expression de graphique 2
Vous pouvez utiliser wildmatch pour effectuer un tri personnalisé pour une expression.
Par défaut, les colonnes sont triées par nombre ou par ordre alphabétique, selon les données.
Cities |
---|
Beijing |
Boston |
Stockholm |
Toronto |
zurich |
Pour modifier l'ordre, procédez comme suit :
- Ouvrez la section Tri relative au graphique dans le panneau des propriétés.
- Désactivez le tri automatique défini pour la colonne à laquelle vous souhaitez appliquer un tri personnalisé.
- Désélectionnez Trier par nombre et Trier par ordre alphabétique.
-
Sélectionnez Trier par expression, puis saisissez une expression semblable à la suivante :
=wildmatch( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich')
L'ordre de tri appliqué à la colonne Cities est modifié en conséquence.
Cities |
---|
Toronto |
Boston |
Beijing |
Stockholm |
zurich |
Vous pouvez également afficher la valeur numérique renvoyée.
Cities | Cities & ' - ' & wildmatch ( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich') |
---|---|
Toronto | Toronto - 1 |
Boston | Boston - 2 |
Beijing | Beijing - 3 |
Stockholm | Stockholm - 4 |
zurich | zurich - 5 |