# SubStringCount Skript- und Diagrammfunktion

SubStringCount() liefert die Anzahl der Vorkommen des angegebenen Teilstrings im Text des Eingabestrings. Gibt es keine Übereinstimmung, ist das Ergebnis 0.

Syntax:

SubStringCount(text, sub\_string)

Rückgabe Datentyp: ganze Zahl

Argumente

| Argument | Beschreibung |
| --- | --- |
| text | Der Original-String. |
| sub\_string | Ein String, der einmal oder mehrmals innerhalb des Eingabestrings text vorkommen kann. |

Beispiel: Diagrammformeln

| Beispiel | Ergebnis |
| --- | --- |
| `SubStringCount( 'abcdefgcdxyz', 'cd' )` | Liefert `2` |
| `SubStringCount( 'abcdefgcdxyz', 'dc' )` | Liefert `0` |

## Beispiel – Grundlegendes zu „SubStringCount“

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

#### Diagrammformel

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Datensatz, der in eine Datentabelle namens `Example` geladen wird

* Ein Feld in der Datentabelle heißt `FruitSentence`.

Ladeskript

```
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!"
];
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:

* ` FruitSentence
                                   `

Erstellen Sie die folgende berechnete Dimension:

* `=SubStringCount(FruitSentence, 'apple')`, um zu berechnen, wie oft das Wort `apple` in `FruitSentence` vorkommt.

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 |

Die Tabelle wird nach der Dimension `FruitSentence` in aufsteigender Reihenfolge sortiert. Die Funktion `SubStringCount` gibt die Anzahl der Vorkommen des Worts `apple` in jedem Satz zurück. Der erste Satz gibt zum Beispiel `2` zurück, weil das Wort zweimal im Satz vorkommt. Im zweiten und vierten Satz ignoriert die Funktion das Wort `Apple`, da es nicht mit der Groß-/Kleinschreibung des Suchbegriffs `apple` übereinstimmt.

TipphinweisUm eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durchzuführen, können Sie Ihren Eingabestring zunächst in Groß- oder Kleinbuchstaben umwandeln und dann die Funktion `SubStringCount` auf das Ergebnis anwenden. Um beispielsweise nach allen Vorkommen des Worts Apple zu suchen, unabhängig von der Groß- und Kleinschreibung, verwenden Sie den folgenden Kennzahlenausdruck: `=SubStringCount(Upper(FruitSentence),'APPLE')`. Der Ausdruck verwendet die Funktion `SubStringCount` mit der Funktion `Upper`, um den gesamten String in Großbuchstaben umzuwandeln, und sucht dann nach dem Wort `APPLE`.

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

#### Ladeskript

Der folgende Code zeigt, wie Sie die Funktion in einem Ladeskript verwenden können. Dieses Beispiel enthält einen vorangestellten load-Befehl, der die Funktion `SubStringCount` mit der Funktion `Upper` verwendet, um den gesamten String in Großbuchstaben umzuwandeln, und dann nach dem Wort `APPLE` sucht.

```
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!"
];
```

Ergebnistabelle

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

## Beispiel – Szenario für „SubStringCount“

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

#### Diagrammformel

Übersicht

Ein Datensatz mit Obstprodukten enthält ein Feld mit Produktbeschreibungen. In diesem Beispiel wird berechnet, wie oft die folgenden Obstnamen in jeder Beschreibung vorkommen: „apple“, „banana“ oder „orange“.

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Datensatz, der in eine Datentabelle namens `Example` geladen wird

* Ein Feld in der Datentabelle heißt `ProductDescription`.

Ladeskript

```
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."
];
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:

* `ProductDescription`

Erstellen Sie die folgenden dynamischen Dimensionen:

* `=SubStringCount(ProductDescription, 'apple')`, um die Anzahl der Vorkommen des Worts `apple` im String `ProductDescription` zu berechnen.

* `=SubStringCount(ProductDescription, 'banana')`, um die Anzahl der Vorkommen des Worts `banana` im String `ProductDescription` zu berechnen.

* `=SubStringCount(ProductDescription, 'orange')`, um die Anzahl der Vorkommen des Worts `orange` im String `ProductDescription` zu berechnen.

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 |

Die Ausgabe der Funktion `SubStringCount` gibt erfolgreich die Anzahl der Vorkommen jedes Teilstrings (`apple, banana, orange`) in der Produktbeschreibung zurück. In der ersten Beschreibung gibt die Funktion zum Beispiel 2 zurück, weil es zwei Instanzen des Worts `orange` gibt. Das Argument `sub_string` unterscheidet zwischen Groß- und Kleinschreibung, so dass die Funktion in der zweiten Beschreibung das Wort `Banana` nicht zählt, weil es nicht mit dem Teilstring `banana` im Kennzahlenausdruck übereinstimmt.

TipphinweisUm eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durchzuführen, können Sie Ihren Eingabestring zunächst in Groß- oder Kleinbuchstaben umwandeln und dann die Funktion `SubStringCount` auf das Ergebnis anwenden. Um beispielsweise nach allen Vorkommen des Worts Apple zu suchen, unabhängig von der Groß- und Kleinschreibung, verwenden Sie den folgenden Kennzahlenausdruck: `=SubStringCount(Upper(ProductDescription),'APPLE')`. Der Ausdruck verwendet die Funktion `SubStringCount` mit der Funktion `Upper`, um den gesamten String in Großbuchstaben umzuwandeln, und sucht dann nach dem Wort `APPLE`.

## Beispiel – Szenario für „SubStringCount“ mit Parsen von verschachtelten Daten

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

#### Diagrammformel

Übersicht

Ein Datensatz von IT-Datensatzeinträgen enthält eine Liste von Änderungs-ID-Nummern und Kategorien. In der Datentabelle wird das Feld Categories von einer mehrstufigen Hierarchie abgeleitet, die die oberste übergeordnete Kategorie gefolgt von allen Unterkategorien auflistet, z. B. Software &gt; Programm &gt; Patch. Dieses Szenario zeigt, wie Sie den letzten Wert oder den Blattwert aus dieser unregelmäßigen Kategorienhierarchie mit Hilfe einer Kombination aus den Funktionen SubStringCount und SubField heraussuchen können.

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Datensatz, der in eine Datentabelle namens Example geladen wird

* Die folgenden Felder in der Datentabelle:

  * ChangeID enthält die ursprüngliche Änderungs-ID, die verarbeitet werden soll.

  * Categories enthält eine Liste von Änderungskategorien. Die Kategorien werden durch Semikolons getrennt und in hierarchischer Reihenfolge von links nach rechts aufgelistet, beginnend mit der obersten übergeordneten Kategorie bis hin zur detailliertesten Unterkategorie.

Ladeskript

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

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

* ChangeID

* Categories

Erstellen Sie die folgenden dynamischen Dimensionen:

* =SubStringCount(Categories,';')+1, um die Anzahl der Kategorieebenen in der Änderungshierarchie zu berechnen.

* =SubField(Categories, ';' ,SubStringCount(Categories,';')+1), um die Kategorie ganz rechts in der Änderungshierarchie zu extrahieren.

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 |

In diesem Fall ist die Funktion SubStringCount innerhalb der Funktion SubField verschachtelt. Die erste dynamische Dimension, SubStringCount(), berechnet die Anzahl der verschachtelten Werte im Feld Categories. Dies wird ermittelt, indem die Anzahl der Semikolons ';' gezählt und 1 zum Ergebnis addiert wird. Diese Ausgabe wird dann als dritter Parameter der Funktion SubField eingefügt, um die Kategorie ganz rechts zu extrahieren, die im Feld Categories verschachtelt ist.

Prüfen Sie zum Beispiel die Ergebnisse für den ChangeID-Eintrag CHG00100. In der ersten dynamischen Dimension ist SubStringCount gleich 2. Der Ausdruck addiert dann 1 zu diesem Ergebnis, um zu bestimmen, dass das Feld Categories drei verschachtelte Kategoriewerte enthält, Software, Program und Patch. Die Funktion SubField in der zweiten dynamischen Dimension verwendet dann dieses Ergebnis, um die dritte Kategorie (Patch) zu extrahieren.