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

SubStringCount() retorna o número de ocorrências da subsequência especificada no texto da string de entrada. Se não houver uma correspondência, será retornado 0.

Sintaxe:

SubStringCount(text, sub\_string)

Tipo de dados de retorno: inteiro

Argumentos

| Argumento | Descrição |
| --- | --- |
| text | A string original. |
| sub\_string | Uma string que pode ocorrer uma ou mais vezes dentro da string de entrada text. |

Exemplo: expressões de gráfico

| Exemplo | Resultado |
| --- | --- |
| `SubStringCount( 'abcdefgcdxyz', 'cd' )` | Retorna `2` |
| `SubStringCount( 'abcdefgcdxyz', 'dc' )` | Retorna `0` |

## Exemplo - Fundamentos de SubStringCount

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

Script de carregamento

```
Example:
Load * inline [
FruitSentence
"I love eating an apple every day.Apple juice is great too!"
"Apple pie is my favorite dessert. I also enjoy apple jam."
"There is an apple and a banana on the table."
"I don't like apples as much as oranges."
"An apple a day keeps the doctor away, but two apples are even better!"
];
```

Resultados

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

* ` FruitSentence
                                   `

Crie a seguinte dimensão calculada:

* `=SubStringCount(FruitSentence, 'apple')` para calcular quantas vezes a palavra `apple` ocorre em `FruitSentence`.

Results table

| FruitSentence | SubStringCount(FruitSentence, 'apple') |
| --- | --- |
| An apple a day keeps the doctor away, but two apples are even better! | 2 |
| Apple pie is my favorite dessert. I also enjoy apple jam. | 1 |
| I don't like apples as much as oranges. | 1 |
| I love eating an apple every day. Apple juice is great too! | 1 |
| There is an apple and a banana on the table. | 1 |

A tabela é classificada na dimensão `FruitSentence` em ordem crescente. A função `SubStringCount` retorna o número de vezes que a palavra `apple` ocorre em cada frase. Por exemplo, a primeira frase retorna `2`, porque a palavra ocorre duas vezes na frase. Na segunda e quarta frases, a função ignora a palavra `Apple` porque ela não corresponde à capitalização do termo de pesquisa `apple`.

Nota de dicaPara fazer uma busca sem distinção entre maiúsculas e minúsculas, você pode primeiro converter a string de entrada em caracteres maiúsculos ou minúsculos e, em seguida, usar a função `SubStringCount` no resultado. Por exemplo, para pesquisar todas as ocorrências da palavra apple, independentemente da capitalização, use a seguinte expressão de medida: `=SubStringCount(Upper(FruitSentence),'APPLE')`. A expressão usa a função `SubStringCount` com a função `Upper` para converter toda a string em caracteres maiúsculos e, em seguida, pesquisa a palavra `APPLE`.

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

#### Script de carregamento

O código a seguir mostra como usar a função em um script de carregamento. Este exemplo inclui um carregamento anterior que usa a função `SubStringCount` com a função `Upper` para converter toda a string em caracteres maiúsculos e, em seguida, pesquisa a palavra `APPLE`.

```
Example:
Load *,
SubStringCount(Upper(FruitSentence),'APPLE') as SubStringCount_APPLE;
Load * inline [
FruitSentence
"I love eating an apple every day. Apple juice is great too!"
"Apple pie is my favorite dessert. I also enjoy apple jam."
"There is an apple and a banana on the table."
"I don't like apples as much as oranges."
"An apple a day keeps the doctor away, but two apples are even better!"
];
```

Tabela de resultados

| FruitSentence | SubStringCount\_APPLE |
| --- | --- |
| I love eating an apple every day. Apple juice is great too! | 2 |
| Apple pie is my favorite dessert. I also enjoy apple jam. | 2 |
| There is an apple and a banana on the table. | 1 |
| I don't like apples as much as oranges. | 1 |
| An apple a day keeps the doctor away, but two apples are even better! | 2 |

## Exemplo - Cenário de SubStringCount

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

#### Expressão de gráfico

Visão geral

Um conjunto de dados de produtos de frutas contém um campo com descrições de produtos. Este exemplo calcula o número de vezes que os seguintes nomes de frutas ocorrem em cada descrição: maçã, banana ou laranja.

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

Script de carregamento

```
Example:
Load * inline [
ProductDescription
"Fresh apple and banana smoothie."
"Organic apple, banana, and orange juice. Great for breakfast."
"A refreshing orange soda made with real orange juice."
"Banana chips with apple and cinnamon flavor."
"Delicious apple pie with a hint of cinnamon and vanilla."
"Tropical banana and orange mix for smoothies."
];
```

Resultados

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

* `ProductDescription`

Crie as seguintes dimensões calculadas:

* `=SubStringCount(ProductDescription, 'apple')` para calcular o número de ocorrências da palavra `apple` na string `ProductDescription`.

* `=SubStringCount(ProductDescription, 'banana')` para calcular o número de ocorrências da palavra `banana` na string `ProductDescription`.

* `=SubStringCount(ProductDescription, 'orange')` para calcular o número de ocorrências da palavra `orange` na string `ProductDescription`.

Results table

| ProductDescription | SubStringCount(ProductDescription, 'apple') | SubStringCount(ProductDescription, 'banana') | SubStringCount(ProductDescription, 'orange') |
| --- | --- | --- | --- |
| A refreshing orange soda made with real orange juice. | 0 | 0 | 2 |
| Banana chips with apple and cinnamon flavor. | 1 | 0 | 0 |
| Delicious apple pie with a hint of cinnamon and vanilla. | 1 | 0 | 0 |
| Fresh apple and banana smoothie. | 1 | 1 | 0 |
| Organic apple, banana, and orange juice. Great for breakfast. | 1 | 1 | 1 |
| Tropical banana and orange mix for smoothies. | 0 | 1 | 1 |

A saída da função `SubStringCount` retorna com êxito o número de instâncias em que cada substring (`apple, banana, orange`) ocorre na descrição do produto. Por exemplo, na primeira descrição, a função retorna 2 porque há duas instâncias da palavra `orange`. O argumento `sub_string` diferencia maiúsculas de minúsculas, portanto, na segunda descrição, a função não conta a palavra `Banana` porque ela não corresponde à substring `banana` na expressão da medida.

Nota de dicaPara fazer uma busca sem distinção entre maiúsculas e minúsculas, você pode primeiro converter a string de entrada em caracteres maiúsculos ou minúsculos e, em seguida, usar a função `SubStringCount` no resultado. Por exemplo, para pesquisar todas as ocorrências da palavra apple, independentemente da capitalização, use a seguinte expressão de medida: `=SubStringCount(Upper(ProductDescription),'APPLE')`. A expressão usa a função `SubStringCount` com a função `Upper` para converter toda a string em caracteres maiúsculos e, em seguida, pesquisa a palavra `APPLE`.

## Exemplo - Cenário de SubStringCount analisando dados aninhados

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

#### Expressão de gráfico

Visão geral

Um conjunto de dados de registros de TI contém uma lista de números de ID de alteração e categorias. Na tabela de dados, o campo Categories é derivado de uma hierarquia de vários níveis que lista a categoria pai superior seguida de todas as subcategorias, por exemplo, Software &gt; Programa &gt; Patch. Esse cenário demonstra como selecionar o último valor, ou valor folha, dessa hierarquia de categoria irregular usando uma combinação das funções SubStringCount e SubField.

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:

  * ChangeID contém o ID de alteração original a ser processado.

  * Categories contém uma lista de categorias de alteração. As categorias são separadas por ponto e vírgula e listadas em ordem hierárquica da esquerda para a direita, começando pela categoria principal até a subcategoria mais detalhada.

Script de carregamento

```
Example:
Load * inline [
ChangeID,Categories
CHG00100,Software;Program;Patch
CHG00101,Hardware;Server
CHG00102,Hardware;Network;Router
];
```

Resultados

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

* ChangeID

* Categories

Crie as seguintes dimensões calculadas:

* =SubStringCount(Categories,';')+1 para calcular o número de níveis de categoria na hierarquia de alterações.

* =SubField(Categories, ';' ,SubStringCount(Categories,';')+1) para extrair a categoria mais à direita na hierarquia de alterações.

Results table

| ChangeID | Categories | ​SubStringCount(Categories,';')+1 | SubField(Categories, ';' ,SubStringCount(Categories,';')+1) |
| --- | --- | --- | --- |
| CHG00100 | Software;Program;Patch | 3 | Patch |
| CHG00101 | Hardware;Server | 2 | Server |
| CHG00102 | Hardware;Network;Router | 3 | Router |

Nesse exemplo, a função SubStringCount está aninhada dentro da função SubField. A primeira dimensão calculada, SubStringCount(), calcula o número de valores aninhados no campo Categories. Isso é determinado pela contagem do número de pontos e vírgulas ';' e pela adição de 1 ao resultado. Essa saída é então injetada como o terceiro parâmetro da função SubField para extrair a categoria mais à direita aninhada no campo Categories.

Por exemplo, analise os resultados da entrada ChangeID CHG00100. Na primeira dimensão calculada, SubStringCount é 2. A expressão então adiciona 1 a esse resultado para determinar que o campo Categories tem três valores de categoria aninhados, Software, Program e Patch. A função SubField, na segunda dimensão calculada, usa esse resultado para extrair a terceira categoria, Patch.