# wildmatch Função de script e de 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 ])

Tipo de dados de retorno: inteiro

Se você quiser usar comparação sem curingas, use as funções match ou mixmatch.

Argumentos

| Argumento | Descrição |
| --- | --- |
| str | A string a ser avaliada. |
| expr1 | A primeira expressão na qual se buscará uma representação numérica válida. |
| expr2 | A segunda expressão na qual se buscará uma representação numérica válida. |
| expr3 | A terceira expressão na qual se buscará uma representação numérica válida. |

Exemplo: expressões de gráfico

| Exemplo | Resultado |
| --- | --- |
| `wildmatch( ColorCode,'black','*Blue*' )` | Esta expressão retorna `1` se o valor de `ColorCode` for `Black` ou `2` se o valor de `ColorCode` for `Blue` ou `Light Blue` ou `blue`. |
| ` wildmatch( Cities,'toronto','Boston','Beijing','Zurich')  ` | Esta expressão retorna o índice do item que corresponde ao valor no campo `Cities`. |

Alguns dos exemplos neste tópico usam carregamentos inline. Para obter mais informações, consulte [Usando carregamentos inline para carregar dados](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm).

## Exemplo – Categorizar os produtos usando wildmatch

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/wildmatch.htm)

#### Expressão de gráfico

Visão geral

Um conjunto de dados contém dados de produtos. Você deseja identificar e categorizar produtos que são consumíveis.

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela de dados denominada `Example`.

* Os campos a seguir na tabela de dados:

  * `ProductID`

  * `ProductName`

  * `ProductCategory`

Script de carregamento

```
Example:
LOAD * INLINE [
ProductID, ProductName, ProductCategory
1, "Laptop", "Electronics"
2, "Banana", "fruit"
3, "Shampoo", "toiletries"
4, "TV", "Electronics"
5, "Apple", "Fruits and vegetables"
];
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `ProductID`

* `ProductName`

* `ProductCategory`

Crie as seguintes medidas:

* `=wildmatch(ProductCategory, 'Toiletries*', 'Fruit*')`, para retornar o índice em que `ProductCategory` tem o valor começando com `Toiletries` ou começando com `Fruit`.

* `=If(wildmatch(ProductCategory, 'Toiletries*', 'Fruit*'), 'Consumable', 'Other')`, para retornar o índice em que `ProductCategory` tem o valor começando com `Toiletries` ou começando com `Fruits`. Se um dos dois for encontrado, `Consumable` será retornado. Caso contrário, `Other` será retornado.

Nota informativaA função `wildmatch` retorna um valor positivo diferente de zero se for encontrada uma correspondência, ou zero se não for encontrada nenhuma correspondência. Por sua vez, o comando `if` interpreta resultados diferentes de zero como `true` e zero como `false`. Ao combinar um comando `if` com as funções `mixmatch`, `wildmatch` ou `match`, é possível decodificar facilmente as correspondências e as incompatibilidades.

Tabela de resultados

| ProductID | ProductName | ProductCategory | wildmatch(ProductCategory, 'Toiletries\*', 'Fruit\*') | If(wildmatch(ProductCategory, 'Toiletries\*', 'Fruit\*') |
| --- | --- | --- | --- | --- |
| 1 | Laptop | Electronics | 0 | Other |
| 2 | Banana | fruit | 2 | Consumable |
| 3 | Shampoo | toiletries | 1 | Consumable |
| 4 | TV | Electronics | 0 | Other |
| 5 | Apple | Fruits and vegetables | 2 | Consumable |

A função `wildmatch` retorna o índice dos caracteres de busca na primeira medida. Na segunda medida, esse resultado é então usado em uma função `If` para fornecer resultados personalizados. Observe que a função `wildmatch` não diferencia maiúsculas de minúsculas e permite os caracteres curinga (`*` e `?`).

## Exemplo – Avaliar e classificar os dados do cliente usando wildmatch

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/wildmatch.htm)

#### Expressão de gráfico

Visão geral

Um conjunto de dados contém dados de clientes. Você deseja identificar e categorizar os clientes cuja região e categoria de setor atendam aos seus requisitos de classificação.

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela de dados denominada `Example`.

* Os campos a seguir na tabela de dados:

  * `ClientID`

  * `ClientName`

  * `Region`

  * `Industry`

Script de carregamento

```
Example:
LOAD * INLINE [ 
ClientID, ClientName, Region, Industry 
1, "Acme Corp", "north territory", "Vehicle Manufacturing" 
2, "Beta Ltd", "East location", "Science & Technology" 
3, "Gamma Inc", "west", "Retail Sales" 
4, "Delta LLC", "North", "Technology" 
5, "Epsilon GmbH", "South", "healthcare" 
];
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `ClientID`

* `ClientName`

* `Region`

* `Industry`

Crie a seguinte medida:

`=If(wildmatch(Region, 'North*', 'East*') AND wildmatch(Industry, '*Technology*', '*Manufacturing*'), 'Target Segment', 'Secondary Segment')`, para retornar o índice dos caracteres de busca. Se for encontrado, `Target Segment` será retornado. Se não for encontrado, `Secondary Segment` será retornado.

Tabela de resultados

| ClientID | ClientName | Region | Industry | If(wildmatch(Region, 'North\*', 'East\*') AND wildmatch(Industry, '\*Technology\*', '\*Manufacturing\*'), 'Target Segment', 'Secondary Segment') |
| --- | --- | --- | --- | --- |
| 1 | Acme Corp | north territory | Vehicle Manufacturing | Target Segment |
| 2 | Beta Ltd | East location | Science & Technology | Target Segment |
| 3 | Gamma Inc | west | Retail Sales | Secondary Segment |
| 4 | Delta LLC | North | Technology | Target Segment |
| 5 | Epsilon GmbH | South | healthcare | Secondary Segment |

A função `wildmatch` pesquisa o texto e retorna um índice que pode ser usado para realizar análises adicionais e classificação de dados. Por exemplo, `Acme Corp` é classificado como um `Target Segment` porque atende aos requisitos de busca da função `wildmatch` para os campos `Region` e `Industry`. Observe que a função `wildmatch` não diferencia maiúsculas de minúsculas e permite os caracteres curinga (`*` e `?`).

## Exemplo: Script de carregamento usando wildmatch

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/wildmatch.htm)

#### Script de carregamento

Visão geral

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. Você pode, então, 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`.

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em duas tabelas de dados chamadas:

  * `Transactions`: inclui campos de transação

  * `Transaction_Buckets`: cria dois novos campos: `Customer` e `Color code - Black, Blue, blue, red`. O comando `where` carrega os resultados da função `wildmatch`.

Script de carregamento

```
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

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `[Color code - Black, Blue, blue, red]`

* `Customer`

Tabela de resultados mostrando a saída do uso da função wildmatchwildmatch no script de carregamento.

| Color code - Black, Blue, blue, red | Customer |
| --- | --- |
| Black | 203521 |
| Black | 3036491 |
| Blue | 2038593 |
| blue | 5646471 |
| Red | 049681 |
| Red | 2038593 |

## Exemplo – Expressão de gráfico usando wildmatch

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/wildmatch.htm)

#### Expressão de gráfico

Visão geral

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela de dados denominada Example.

* Os campos a seguir na tabela de dados:

  * Cities

  * Count

Script de carregamento

```
Example:
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];
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:

* Cities

Crie as seguintes medidas:

* =wildmatch( Cities,'Tor\*','?ton','Beijing','\*urich') , para retornar o índice dos caracteres de busca.

* =wildmatch( Cities,'Tor\*','???ton','Beijing','Stockholm','\*urich'), para retornar o índice dos caracteres de busca.

* =Cities & ' - ' & wildmatch ( Cities, 'Tor\*','???ton','Beijing','Stockholm','\*urich'), para retornar o campo Cities e o índice dos caracteres de busca.

A primeira medida na tabela abaixo retorna 0 para Stockholm porque Stockholm não está incluído na lista de expressões na função wildmatch. Ele também retorna 0 para Boston porque ? só corresponde a um único caractere.

Tabela de resultados

| Cities | wildmatch( Cities,'Tor\*','?ton','Beijing','\*urich') | wildmatch( Cities,'Tor\*','???ton','Beijing','Stockholm','\*urich') | Cities & ' - ' & wildmatch ( Cities, 'Tor\*','???ton','Beijing','Stockholm','\*urich') |
| --- | --- | --- | --- |
| Beijing | 3 | 3 | Beijing - 3 |
| Boston | 0 | 2 | Boston - 2 |
| Stockholm | 0 | 4 | Stockholm - 4 |
| Toronto | 1 | 1 | Toronto - 1 |
| zurich | 4 | 5 | zurich - 5 |

## Exemplo – Expressão de classificação personalizada usando wildmatch

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/wildmatch.htm)

#### Expressão de gráfico

Visão geral

Você pode usar wildmatch para executar uma classificação personalizada para uma expressão. Este exemplo usa o mesmo conjunto de dados do exemplo anterior.

Por padrão, as colunas são classificadas numérica ou alfabeticamente, dependendo dos dados.

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:

* Cities

Tabela de resultados mostrando a ordem de classificação padrão

| Cities |
| --- |
| Beijing |
| Boston |
| Stockholm |
| Toronto |
| zurich |

Para alterar a ordem de classificação, faça o seguinte:

1. Abra a seção Classificação do gráfico no painel Propriedades.

2. Desative a classificação automática para a coluna na qual você deseja fazer uma classificação personalizada.

3. Desmarque as caixas de seleção Classificar numericamente e Classificar alfabeticamente.

4. 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.

Tabela de resultados mostrando a ordem de classificação usando a função wildmatchwildmatch

| Cities |
| --- |
| Toronto |
| Boston |
| Beijing |
| Stockholm |
| zurich |

## Saiba mais

* [match Função de script e de gráfico](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/match.htm)
* [mixmatch Função de script e de gráfico](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/mixmatch.htm)