wildmatch — funkcja skryptu i funkcja wykresu
Funkcja wildmatch porównuje pierwszy parametr ze wszystkimi kolejnymi parametrami i zwraca numer pasującego wyrażenia. Umożliwia używanie znaków wieloznacznych ( * i ?) w ciągach porównawczych. * dopasowuje dowolną sekwencję znaków. ? dopasowuje dowolny pojedynczy znak. W porównaniu nie jest uwzględniana wielkość liter ani japońskie systemy znaków hiragana i katakana.
Składnia:
wildmatch( str, expr1 [ , expr2,...exprN ])
Aby dokonywać porównań między symbolami wieloznacznymi, należy użyć funkcji match lub mixmatch.
Niektóre przykłady w tym temacie wykorzystują ładowania wbudowane. Więcej informacji zawiera temat Używanie wbudowanych ładowań do ładowania danych.
Przykład: Skrypt ładowania używający wildmatch
Skrypt ładowania
Funkcji wildmatch można użyć, aby załadować podzbiór danych. Można na przykład zwrócić wartość liczbową dla wyrażenia w funkcji. Następnie można ograniczyć załadowane dane na podstawie tej wartości liczbowej. W przypadku braku dopasowania funkcja Wildmatch zwraca 0. Wszystkie wyrażenia, dla których nie zostanie znalezione dopasowanie, zwrócą w tym przykładzie 0 i zostaną wykluczone z danych ładowanych przez instrukcję WHERE.
Utwórz nową kartę w edytorze ładowania danych, a następnie załaduj następujące dane jako ładowanie wbudowane. Utwórz tabelę poniżej w Qlik Sense, aby zobaczyć wyniki.
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;
Wyniki
Color Code Black, Blue, blue, Red | Customer |
---|---|
Black | 203521 |
Black | 3036491 |
Blue | 2038593 |
Blue | 5646471 |
Red | 049681 |
Red | 2038593 |
Przykłady: Wyrażenia wykresu używające wildmatch
Wyrażenie wykresu 1
Utwórz nową kartę w edytorze ładowania danych, a następnie załaduj następujące dane jako ładowanie wbudowane. Po załadowaniu danych utwórz poniższe przykłady wyrażeń wykresu w tabeli 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];
Pierwsze wyrażenie z tabeli poniżej zwraca 0 dla Stockholm, ponieważ „Stockholm” nie znajduje się na liście wyrażeń w funkcji wildmatch. Zwraca również 0 dla „Boston”, ponieważ dopasowaniem dla ? jest tylko pojedynczy znak.
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 |
Wyrażenie wykresu 2
Funkcji wildmatch można użyć, aby wykonać niestandardowe sortowanie dla wyrażenia.
Domyślnie kolumny są posortowane w porządku liczbowym lub alfabetycznym — w zależności od danych.
Cities |
---|
Beijing |
Boston |
Stockholm |
Toronto |
zurich |
Aby zmienić porządek, wykonaj następujące czynności:
- W panelu Właściwości otwórz sekcję Sortowanie dla wykresu.
- Wyłącz automatyczne sortowanie dla kolumny, względem której chcesz wykonać sortowanie niestandardowe.
- Usuń zaznaczenie opcji Sortuj w kolejności liczbowej i Sortuj alfabetycznie.
-
Zaznacz opcję Sortuj wg wyrażenia, a następnie wprowadź wyrażenie podobne do następującego:
=wildmatch( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich')
Porządek sortowania w kolumnie Cities ulegnie zmianie.
Cities |
---|
Toronto |
Boston |
Beijing |
Stockholm |
zurich |
Możesz także wyświetlić zwróconą wartość liczbową.
Miasta | Cities & ' - ' & wildmatch ( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich') |
---|---|
Toronto | Toronto - 1 |
Boston | Boston - 2 |
Beijing | Beijing - 3 |
Stockholm | Stockholm - 4 |
zurich | zurich - 5 |