# FindOneOf Função de script e de gráfico

FindOneOf() busca uma string para localizar a posição da ocorrência de qualquer caractere a partir de um conjunto de caracteres fornecidos. A posição da enésima ocorrência de qualquer caractere do conjunto de pesquisa é retornada, em que N é o terceiro parâmetro opcional da função. Se nenhum terceiro parâmetro for fornecido, será retornada a primeira ocorrência. Se não for encontrada correspondência, será retornado 0.

Sintaxe:

FindOneOf(text, char\_set[, count])

Tipo de dados de retorno: inteiro

Argumentos

| Argumento | Descrição |
| --- | --- |
| text | A string original. |
| char\_set | Um conjunto de caracteres para pesquisar em text. |
| count | Define qual ocorrência de qualquer um dos caracteres deve ser pesquisada. Por exemplo, um valor de duas pesquisas para a segunda ocorrência. |

Exemplo: expressões de gráfico

| Exemplo | Resultado |
| --- | --- |
| `FindOneOf(  'my example text string', 'et%s' )` | Retorna `4` porque `e` é o quarto caractere na string de exemplo. |
| `FindOneOf(  'my example text string', 'et%s', 3 )` | Retorna `12` porque a pesquisa refere-se a qualquer um dos caracteres `e`, `t`, `%` ou `s`, e `t` é a terceira ocorrência na posição `12` da string de exemplo. |
| `FindOneOf(  'my example text string', '¤%&' )` | Retorna `0` porque nenhum dos caracteres `¤`, `%` ou `&` foi encontrado na string de exemplo. |

## Exemplo - Fundamentos de FindOneOf

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/FindOneOf.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`.

* Um campo na tabela de dados chamado `Phrase`, que contém as strings de texto originais a serem processadas.

Script de carregamento

```
Example:
Load *
Inline
[Phrase
Many tiny beads
For a very long time
Has the potential for growth
];
```

Resultados

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

* ` Phrase
                                   `

Crie as seguintes dimensões calculadas:

* `=FindOneOf(Phrase, 'e', 1)`

* `=FindOneOf(Phrase, 'y', 1)`

* `=FindOneOf(Phrase, 'ey', 1)`

* `=FindOneOf(Phrase, 'e', 2)`

* `=FindOneOf(Phrase, 'y', 2)`

* `=FindOneOf(Phrase, 'ey', 2)`

Tabela de resultados

| Phrase | FindOneOf(Phrase, 'e', 1) | FindOneOf(Phrase, 'y', 1) | FindOneOf(Phrase, 'ey', 1) | FindOneOf(Phrase, 'e', 2) | FindOneOf(Phrase, 'y', 2) | FindOneOf(Phrase, 'ey', 2) |
| --- | --- | --- | --- | --- | --- | --- |
| For a very long time | 8 | 10 | 8 | 20 | 0 | 10 |
| Has the potential for growth | 7 | 0 | 7 | 12 | 0 | 12 |
| Many tiny beads | 12 | 4 | 4 | 0 | 9 | 9 |

Para cada dimensão calculada, a saída retorna a posição da ocorrência dos caracteres do conjunto de pesquisa para cada frase. Por exemplo, a primeira ocorrência da letra `e` é encontrada na posição `8`, `7` e `12` para cada frase, respectivamente. A segunda ocorrência da letra `e` em cada frase é encontrada na posição `20`, `12` e `0` (não encontrada). Da mesma forma, a primeira ocorrência das letras '`e` ou `y`' foi encontrada na posição `8`, `7` e `4`, para cada frase respectivamente. Observe que na frase `For a very long time` a primeira ocorrência de '`e` ou `y`' é encontrada na posição `8`, um `e`, e a segunda ocorrência na posição `10`, um `y`.

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

#### Script de carregamento

O código a seguir mostra como usar a função em um script de carregamento.

```
Example:
Load *, FindOneOf(InputText, SearchFor, Occurrence) AS FindOneOf_Matches
Inline
InputText, SearchFor, Occurrence
my example text string, et%s,1
my example text string, et%s,3
my example text string, ¤%&,1
];
```

Tabela de resultados

| InputText | SearchFor | Ocorrência | FindOneOf\_Matches |
| --- | --- | --- | --- |
| meu exemplo de string de texto | et%s | 1 | 4 |
| meu exemplo de string de texto | et%s | 3 | 12 |
| meu exemplo de string de texto | ¤%& | 1 | 0 |

## Exemplo - Cenário FindOneOf

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

#### Expressão de gráfico

Visão geral

Este exemplo usa a função `FindOneOf` para analisar os comentários dos clientes em um conjunto de dados de pedidos de clientes e identificar os pedidos que podem exigir ação. Cada pedido tem um campo `CustomerComment` onde os clientes podem deixar notas ou comentários sobre seus pedidos. Ao analisar os comentários, você pode identificar palavras-chave ou caracteres específicos, como '!', '@', '#', que podem indicar urgência ou solicitações especiais.

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:

  * `TicketID` o número de identificação do tíquete

  * `CustomerComment` a string de texto original

Script de carregamento

```
Example:
Load * inline [
TicketID, CustomerComment
1, I need this order ASAP!
2, Please confirm my order @12345.
3, Can you update my order?
4, I have a question about #discount.
5, Thank you!
];
```

Resultados

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

* ` TicketID
                                   `

* `CustomerComment`

Crie as seguintes dimensões calculadas:

* `=FindOneOf(CustomerComment, '!,@,#')`

* `=If(FindOneOf(CustomerComment, '!,@,#')>0,'High Priority','Normal Priority')`

Tabela de resultados

| TicketID | CustomerComment | FindOneOf(CustomerComment, '!,@,#') | If(FindOneOf(CustomerComment, '!,@,#')&gt;0,'High Priority','Normal Priority') |
| --- | --- | --- | --- |
| 1 | Preciso desse pedido o mais rápido possível! | 23 | Alta prioridade |
| 2 | Confirme meu pedido @12345. | 25 | Alta prioridade |
| 3 | Você pode atualizar meu pedido? | 0 | Prioridade normal |
| 4 | Tenho uma pergunta sobre #desconto. | 25 | Alta prioridade |
| 5 | Obrigado! | 10 | Alta prioridade |

Compare a saída da função `FindOneOf` com os valores originais da string `CustomerComment` que foram carregados no script. Usando os valores `!,@,#`, a função retornou com sucesso a posição em que esses caracteres ocorrem na string de comentário. A medida final usa uma instrução condicional `If` para identificar registros que incluam qualquer um dos caracteres de pesquisa e atribui-los como `High Priority`. Se nenhum dos caracteres de pesquisa `!,@,#` for encontrado, por exemplo, na linha 3, o tíquete será classificado como `Normal Priority`.