wildmatch - funzione dello script e del grafico
La funzione wildmatch confronta il primo parametro con tutti i parametri seguenti e restituisce il numero dell'espressione corrispondente. Consente l'utilizzo di caratteri jolly ( * e ?) nelle stringhe di confronto. * corrisponde a qualsiasi sequenza di caratteri. ? corrisponde a qualsiasi carattere singolo. Il confronto non rispetta la distinzione maiuscole/minuscole.
Syntax:
wildmatch( str, expr1 [ , expr2,...exprN ])
La prima espressione nella tabella sottostante restituisce 0 per Stockholm perché “Stockholm” non è inclusa nell'elenco di espressioni nella funzione wildmatch. Restituisce 0 anche per “Boston” perché ? corrisponde a un singolo carattere.
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 |
È possibile utilizzare wildmatch per eseguire un ordinamento personalizzato per un'espressione.
Per impostazione predefinita, le colonne vengono ordinate numericamente o alfabeticamente, 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 e quindi inserire un'espressione simile alla seguente:
=wildmatch( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich')
L'ordinamento della colonna Cities verrà modificato.
Cities |
---|
Toronto |
Boston |
Beijing |
Stockholm |
zurich |
È inoltre possibile visualizzare il valore numerico restituito.
Cities | Cities & ' - ' & wildmatch ( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich') |
---|---|
Toronto | Toronto - 1 |
Boston | Boston - 2 |
Beijing | Beijing - 3 |
Stockholm | Stockholm - 4 |
zurich | zurich - 5 |
Script di caricamento
È possibile utilizzare wildmatch 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. Wildmatch 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.
Nell'editor caricamento dati creare una nuova sezione denominata Load e quindi aggiungere quanto segue:
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', 2 for 'Blue', 3 for 'blue', 4 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;
Risultati
Color Code Black, Blue, blue, Red | Customer |
---|---|
Nero | 203521 |
Nero | 3036491 |
Blu | 2038593 |
blue | 5646471 |
Rosso | 049681 |
Rosso | 2038593 |