# SubStringCount Función de script y de gráfico

SubStringCount() devuelve el número de veces que aparece la subcadena especificada en el texto de la cadena de entrada. Si no existe coincidencia alguna, devuelve 0.

Sintaxis:

SubStringCount(text, sub\_string)

Tipo de datos que devuelve: entero

Argumentos

| Argumento | Descripción |
| --- | --- |
| text | La cadena original. |
| sub\_string | Una cadena que puede aparecer una o más veces dentro de la cadena de text introducida. |

Ejemplo: expresiones de gráfico

| Ejemplo | Resultado |
| --- | --- |
| `SubStringCount( 'abcdefgcdxyz', 'cd' )` | Devuelve `2` |
| `SubStringCount( 'abcdefgcdxyz', 'dc' )` | Devuelve `0` |

## Ejemplo: fundamentos de SubStringCount

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

#### Expresión de gráfico

Descripción general

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada `Example`.

* Un campo de la tabla de datos llamado `FruitSentence`.

Script de carga

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

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión:

* ` FruitSentence
                                   `

Cree la siguiente dimensión calculada:

* `=SubStringCount(FruitSentence, 'apple')`, para calcular cuántas veces aparece la palabra `apple` en `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 |

La tabla se ordena en la dimensión `FruitSentence` por orden ascendente. La función `SubStringCount` devuelve el número de veces que aparece la palabra `apple` en cada frase. Por ejemplo, la primera frase devuelve `2`, porque la palabra aparece dos veces en la frase. En la segunda y cuarta frases, la función ignora la palabra `Apple` porque no coincide con el patrón de mayúsculas del término de búsqueda `apple`.

Nota de sugerenciaPara realizar una búsqueda que no distinga entre mayúsculas y minúsculas, puede convertir primero la cadena de caracteres introducida a mayúsculas o minúsculas y después utilizar la función `SubStringCount` en el resultado. Por ejemplo, para buscar todas las instancias de la palabra manzana independientemente de que esté en mayúsculas o minúsculas, utilice la siguiente expresión de medida: `=SubStringCount(Upper(FruitSentence),'APPLE')`. La expresión utiliza la función `SubStringCount` con la función `Upper` para convertir toda la cadena a caracteres en mayúscula y después busca la palabra `APPLE`.

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

#### Script de carga

El siguiente código muestra cómo utilizar la función en un script de carga. Este ejemplo incluye un load precedente que utiliza la función `SubStringCount` con la función `Upper` para convertir toda la cadena a caracteres en mayúsculas y después busca la palabra `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!"
];
```

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

## Ejemplo: uso de SubStringCount

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

#### Expresión de gráfico

Descripción general

Un conjunto de datos de productos frutícolas contiene un campo con descripciones de productos. Este ejemplo calcula el número de veces que aparecen los siguientes nombres de frutas en cada descripción: manzana, plátano o naranja.

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada `Example`.

* Un campo de la tabla de datos llamado `ProductDescription`.

Script de carga

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

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión:

* `ProductDescription`

Cree las siguientes dimensiones calculadas:

* `=SubStringCount(ProductDescription, 'apple')`, para calcular el número de veces que aparece la palabra `apple` en la cadena `ProductDescription`.

* `=SubStringCount(ProductDescription, 'banana')`, para calcular el número de veces que aparece la palabra `banana` en la cadena `ProductDescription`.

* `=SubStringCount(ProductDescription, 'orange')`, para calcular el número de veces que aparece la palabra `orange` en la cadena `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 |

El resultado de la función `SubStringCount` devuelve correctamente el número de veces que cada subcadena (`apple, banana, orange`) aparece en la descripción del producto. Por ejemplo, en la primera descripción, la función devuelve 2 porque hay dos instancias de la palabra `orange`. El argumento `sub_string` distingue entre mayúsculas y minúsculas, por lo que en la segunda descripción, la función no cuenta la palabra `Banana`, porque no coincide con la subcadena `banana` en la expresión de medida.

Nota de sugerenciaPara realizar una búsqueda que no distinga entre mayúsculas y minúsculas, puede convertir primero la cadena de caracteres introducida a mayúsculas o minúsculas y después utilizar la función `SubStringCount` en el resultado. Por ejemplo, para buscar todas las instancias de la palabra apple independientemente de que esté en mayúsculas o minúsculas, utilice la siguiente expresión de medida: `=SubStringCount(Upper(ProductDescription),'APPLE')`. La expresión utiliza la función `SubStringCount` con la función `Upper` para convertir toda la cadena a caracteres en mayúscula y después busca la palabra `APPLE`.

## Ejemplo: uso de SubStringCount analizando datos anidados

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

#### Expresión de gráfico

Vista general

Un conjunto de datos de registros de TI contiene una lista de números de identificación de cambios y categorías. En la tabla de datos, el campo Categories se deriva de una jerarquía de varios niveles que enumera la categoría principal superior seguida de todas las subcategorías, por ejemplo Software &gt; Programa &gt; Parche. Este escenario demuestra cómo escoger el último valor, o valor tipo hoja, de esta jerarquía de categorías irregular, utilizando una combinación de las funciones SubStringCount y SubField.

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla de datos denominada Example.

* Los siguientes campos de la tabla de datos:

  * ChangeID contiene el ID del cambio original que se va a procesar.

  * Categories contiene una lista de categorías con cambios. Las categorías están separadas por punto y coma y se muestran por orden jerárquico de izquierda a derecha, empezando por la categoría superior hasta la subcategoría más detallada.

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* ChangeID

* Categories

Cree las siguientes dimensiones calculadas:

* =SubStringCount(Categories,';')+1, para calcular el número de niveles de categoría en la jerarquía de cambios.

* =SubField(Categories, ';' ,SubStringCount(Categories,';')+1), para extraer la categoría situada más a la derecha en la jerarquía de cambios.

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 |

En este ejemplo, la función SubStringCount está anidada dentro de la función SubField. La primera dimensión calculada, SubStringCount(), calcula el número de valores anidados en el campo Categories. Se determina contando el número de puntos y comas ';' y sumando 1 al resultado. A continuación, este resultado de salida se inyecta como tercer parámetro de la función SubField para extraer la categoría situada más a la derecha anidada en el campo Categories.

Por ejemplo, revise los resultados de la entrada ChangeID CHG00100 . En la primera dimensión calculada, SubStringCount es 2. A continuación, la expresión suma 1 a ese resultado para determinar que el campo Categories tiene tres valores de categoría anidados, Software, Program y Patch. A continuación, la función SubField, en la segunda dimensión calculada, utiliza este resultado para extraer la tercera categoría, Patch.