mixmatch - funzione dello script e del grafico
La funzione mixmatch confronta il primo parametro con tutti i parametri seguenti e restituisce la posizione numerica delle espressioni corrispondenti. Il confronto non rispetta la distinzione maiuscole/minuscole.
Sintassi:
mixmatch( str, expr1 [ , expr2,...exprN ])
Se invece 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.
Alcuni degli esempi in questo argomento utilizzano caricamenti inline. Caricamento inline
Esempio - Script di caricamento usando mixmatch
Script di caricamento
È 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.
Creare una nuova scheda nell'editor caricamento dati, quindi caricare i seguenti dati come caricamento inline. Creare la tabella in basso in Qlik Sense per visualizzare i risultati.
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
Color Code Black, Blue, blue | Customer |
---|---|
Nero | 203521 |
Nero | 3036491 |
Blu | 2038593 |
blue | 5646471 |
Esempi - Espressioni del grafico usando mixmatch
Creare una nuova scheda nell'editor caricamento dati, quindi caricare i seguenti dati come caricamento inline. Dopo aver caricato i dati, creare gli esempi di espressione del grafico in basso in una tabella Qlik Sense.
Espressione del grafico 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];
La prima espressione nella tabella sottostante restituisce 0 per Stockholm perché “Stockholm” non è inclusa nell'elenco di espressioni nella funzione mixmatch. Restituisce 4 per “Zurich”, perché il confronto mixmatch rispetta la distinzione tra maiuscole e minuscole.
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 |
Espressione del grafico 2
È possibile utilizzare mixmatch per eseguire un ordinamento personalizzato per un'espressione.
Per impostazione predefinita, le colonne vengono ordinate alfabeticamente o numericamente, a seconda dei dati.
Cities |
---|
Beijing |
Boston |
Stockholm |
Toronto |
zurich |
Per modificare l'ordine, procedere come segue:
- Aprire la sezione Ordinamento del grafico nel pannello Proprietà.
- Disattivare l'ordinamento automatico per la colonna su cui si desidera eseguire un ordinamento personalizzato.
- Deselezionare Ordina per numero e Ordina per lettera.
-
Selezionare Ordina per espressione, quindi inserire la seguente espressione:
=mixmatch( Cities, 'Toronto','Boston','Beijing','Stockholm','Zurich')
L'ordinamento della colonna Cities verrà modificato.
Cities |
---|
Toronto |
Boston |
Beijing |
Stockholm |
zurich |
È inoltre possibile visualizzare il valore numerico restituito.
Cities | Cities & ' - ' & mixmatch ( Cities, 'Toronto','Boston', 'Beijing','Stockholm','Zurich') |
---|---|
Toronto | Toronto - 1 |
Boston | Boston - 2 |
Beijing | Beijing - 3 |
Stockholm | Stockholm - 4 |
zurich | zurich - 5 |