wildmatch - función de script y de gráfico
La función wildmatch compara el primer parámetro con todos los siguientes y devuelve el número de la expresión que coincida. Permite el uso de los caracteres comodín ( * y ?) en las cadenas de comparación. * es cualquier secuencia de caracteres. ? es un único carácter. La comparación no es sensible a mayúsculas.
Syntax:
wildmatch( str, expr1 [ , expr2,...exprN ])
La primera expresión en la tabla a continuación devuelve 0 para Estocolmo porque 'Estocolmo' no está incluido en la lista de expresiones de la función wildmatch. También devuelve 0 para 'Boston' porque ? solo coincide con un único carácter.
Ciudades | wildmatch( Ciudades,'Tor*','?ton','Pekín','*urich') | wildmatch( Ciudades,'Tor*','???ton','Pekín','Estocolmo','*urich') |
---|---|---|
Pekín |
3 |
3 |
Boston | 0 | 2 |
Estocolmo | 0 | 4 |
Toronto | 1 | 1 |
zurich | 4 | 5 |
Puede usar wildmatch para realizar una ordenación personalizada en una expresión.
De forma predeterminada, las columnas se ordenan numéricamente o alfabéticamente, dependiendo de los datos.
Ciudades |
---|
Pekín |
Boston |
Estocolmo |
Toronto |
zurich |
Para cambiar el orden, haga lo siguiente:
- Abra la sección Ordenar de su gráfico en el panel de Propiedades.
- Desactive la ordenación automática para la columna en la que desea realizar una ordenación personalizada.
- Desmarque Ordenar numéricamente y Ordenar alfabéticamente.
-
Seleccione Ordenar por expresión y después introduzca una expresión similar a la siguiente:
=wildmatch( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich')
El criterio de ordenación de la columna Cities cambia.
Ciudades |
---|
Toronto |
Boston |
Pekín |
Estocolmo |
zurich |
También puede ver el valor numérico que devuelve.
Ciudades | Ciudades & ' - ' & wildmatch ( Ciudades, 'Tor*','???ton','Pekín','Estocolmo','*urich') |
---|---|
Toronto | Toronto - 1 |
Boston | Boston - 2 |
Pekín | Pekín - 3 |
Estocolmo | Estocolmo - 4 |
zurich | zurich - 5 |
Script de carga
Puede usar wildmatch para cargar un subconjunto de datos. Por ejemplo, puede devolver un valor numérico para una expresión en la función. A continuación puede limitar los datos cargados en función del valor numérico. Wildmatch devuelve 0 si no hay coincidencia. Todas las expresiones que no coinciden en este ejemplo devolverán 0 y serán excluidas de la carga de datos por la instrucción WHERE.
En el Editor de carga de datos, cree una nueva sección denominada Load, y a continuación añada lo siguiente:
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;
Resultados
Código de color Black, Blue, blue, Red | Cliente |
---|---|
Black | 203521 |
Black | 3036491 |
Blue | 2038593 |
blue | 5646471 |
Red | 049681 |
Red | 2038593 |