wildmatch – função de script e gráfico
A função wildmatch compara o primeiro parâmetro com todos os seguintes e retorna o número da expressão correspondente. Isso permite o uso de caracteres curinga ( * e ?) nas strings de comparação. * corresponde a qualquer sequência de caracteres. ? corresponde a qualquer caractere único. A comparação não diferencia maiúsculas de minúsculas e não diferencia maiúsculas de minúsculas dos sistemas de caracteres japoneses Hiragana e Katakana.
Sintaxe:
wildmatch( str, expr1 [ , expr2,...exprN ])
Se você quer usar comparação sem caracteres curingas, use a função match ou mixmatch.
Alguns dos exemplos neste tópico usam carregamentos inline. Para obter mais informações, consulte Usando carregamentos inline para carregar dados.
Exemplo: Script de carregamento usando wildmatch
Script de carregamento
Você pode usar wildmatch para carregar um subconjunto de dados. Por exemplo, você pode retornar um valor numérico para uma expressão na função. Em seguida, é possível limitar os dados carregados com base no valor numérico. Wildmatch retornará 0 se não houver correspondência. Portanto, todas as expressões não correspondidas neste exemplo retornarão 0 e serão excluídas do carregamento de dados pelo comando WHERE.
Crie uma nova guia no editor de carregamento de dados e carregue os dados a seguir como um carregamento inline. Crie a tabela abaixo no Qlik Sense para ver os resultados.
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;
Resultados
Color Code Black, Blue, blue, Red | Customer |
---|---|
Black | 203521 |
Black | 3036491 |
Blue | 2038593 |
blue | 5646471 |
Red | 049681 |
Red | 2038593 |
Exemplos: Expressões de gráfico usando wildmatch
Expressão de gráfico 1
Crie uma nova guia no editor de carregamento de dados e carregue os dados a seguir como um carregamento inline. Depois de carregar os dados, crie os exemplos de expressão de gráfico abaixo em uma tabela do 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];
A primeira expressão da tabela a seguir retorna 0 para Stockholm, porque "Stockholm" não está incluído na lista de expressões da função wildmatch. Também retorna 0 para 'Boston', porque ? só corresponde em um caractere.
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 |
Expressão de gráfico 2
Você pode usar wildmatch para executar uma classificação personalizada para uma expressão.
Por padrão, as colunas são classificadas numérica ou alfabeticamente, dependendo dos dados.
Cities |
---|
Beijing |
Boston |
Stockholm |
Toronto |
zurich |
Para alterar a ordem, faça o seguinte:
- Abra a seção Classificação do gráfico no painel Propriedades.
- Desative a classificação automática para a coluna na qual você deseja fazer uma classificação personalizada.
- Desmarque Classificar numericamente e Classificar alfabeticamente.
-
Selecione Classificar por expressão e insira uma expressão semelhante à seguinte:
=wildmatch( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich')
A ordem de classificação na coluna Cities é alterada.
Cities |
---|
Toronto |
Boston |
Beijing |
Stockholm |
zurich |
Você também pode exibir o valor numérico retornado.
Cidades | Cities & ' - ' & wildmatch ( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich') |
---|---|
Toronto | Toronto - 1 |
Boston | Boston - 2 |
Beijing | Beijing - 3 |
Stockholm | Stockholm - 4 |
zurich | zurich - 5 |