mixmatch - Skript- und Diagrammfunktion
Die mixmatch-Funktion vergleicht den ersten Parameter mit den folgenden und liefert die numerische Position der übereinstimmenden Formeln. Beim Vergleich wird nicht zwischen Groß- und Kleinschreibung und zwischen den japanischen Hiragana- und Katakana-Zeichensystemen unterschieden.
Syntax:
mixmatch( str, expr1 [ , expr2,...exprN ])
Wenn dagegen die Groß- und Kleinschreibung beim Vergleich eine Rolle spielen soll, verwenden Sie die match-Funktion. Wenn die Groß- und Kleinschreibung beim Vergleich keine Rolle spielen soll und Wildcards eingesetzt werden sollen, verwenden Sie die wildmatch-Funktion.
Einige der Beispiele in diesem Thema verwenden Inline-Ladevorgänge. Verwenden von Inline-Ladevorgängen zum Laden von Daten
Beispiel: Ladeskript mit Verwendung von mixmatch
Ladeskript
Sie können mixmatch zum Laden einer Teilmenge von Daten verwenden. Sie können zum Beispiel einen numerischen Wert für eine Formel in der Funktion liefern. Dann können Sie die geladenen Daten basierend auf dem numerischen Wert beschränken. Mixmatch liefert 0, wenn keine Übereinstimmung vorliegt. Alle Formeln, für die in diesem Beispiel keine Übereinstimmung vorliegt, liefern daher 0 und werden aus dem Datenladen mit dem WHERE-Befehl ausgeschlossen.
Erstellen Sie eine neue Registerkarte im Dateneditor und laden Sie die folgenden Daten als Inline-Ladevorgang: Erstellen Sie die Tabelle unten in Qlik Sense, um die Ergebnisse anzuzeigen.
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;
Ergebnisse
Color Code Black, Blue, blue | Customer |
---|---|
Black | 203521 |
Black | 3036491 |
Blue | 2038593 |
blue | 5646471 |
Beispiele: Diagrammformeln mit Verwendung von mixmatch
Erstellen Sie eine neue Registerkarte im Dateneditor und laden Sie die folgenden Daten als Inline-Ladevorgang: Erstellen Sie nach dem Laden der Daten die Diagrammausdruckbeispiele unten in einer Qlik Sense-Tabelle.
Diagrammformel 1
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];
Die erste Formel in der Tabelle unten liefert 0 für „Stockholm“, da „Stockholm“ nicht in der Liste der Formeln in der mixmatch-Funktion enthalten ist. Es wird 4 für „Zurich“ geliefert, weil der mixmatch-Vergleich die Groß- und Kleinschreibung nicht berücksichtigt.
Cities | mixmatch( Cities,'Toronto','Boston','Beijing','Zurich') | mixmatch( Cities,'Toronto','Boston','Beijing','Stockholm','Zurich') |
---|---|---|
Beijing |
3 |
3 |
Boston | 2 | 2 |
Stockholm | 0 | 4 |
Toronto | 1 | 1 |
zurich | 4 | 5 |
Diagrammformel 2
Sie können mixmatch verwenden, um eine benutzerdefinierte Sortierung für eine Formel auszuführen.
Standardmäßig werden Spalten abhängig von den Daten alphabetisch oder numerisch sortiert.
Cities |
---|
Beijing |
Boston |
Stockholm |
Toronto |
zurich |
Gehen Sie wie folgt vor, um die Reihenfolge zu ändern:
- Öffnen Sie den Abschnitt Sortieren für Ihr Diagramm im Fenster Eigenschaften.
- Deaktivieren Sie die automatische Sortierung für die Spalte, in der Sie eine benutzerdefinierte Sortierung durchführen möchten.
- Heben Sie die Auswahl von Numerisch sortieren und Alphabetisch sortieren auf.
-
Wählen Sie Nach Formel sortieren und geben Sie dann die folgende Formel ein:
=mixmatch( Cities, 'Toronto','Boston','Beijing','Stockholm','Zurich')
Die Sortierreihenfolge der Spalte Cities ändert sich.
Cities |
---|
Toronto |
Boston |
Beijing |
Stockholm |
zurich |
Sie können auch den gelieferten numerischen Wert anzeigen.
Cities | Cities & ' - ' & mixmatch ( Cities, 'Toronto','Boston', 'Beijing','Stockholm','Zurich') |
---|---|
Toronto | Toronto - 1 |
Boston | Boston - 2 |
Beijing | Beijing - 3 |
Stockholm | Stockholm - 4 |
zurich | zurich - 5 |