# Index Funzione per script e grafici

Index() ricerca una stringa per individuare la posizione iniziale della n-esima occorrenza di una sottostringa fornita. Un terzo argomento opzionale fornisce il valore di n, che corrisponde a 1 se omesso. Un valore negativo esegue la ricerca dalla fine della stringa. Le posizioni nella stringa sono numerate da sinistra a destra a partire dal valore 1.

Sintassi:

Index(text, substring[, count])

Tipo di dati restituiti: numero intero

Argomenti

| Argomento | Descrizione |
| --- | --- |
| text | La stringa originale. |
| substring | Una stringa di caratteri da ricercare in text.<br><br>Nota informaticaSe la sottostringa non esiste nel testo, l'Indicizzazione restituisce 0. |
| count | Definisce l'occorrenza di substring da ricercare. Ad esempio, un valore di 2 ricerche per la seconda occorrenza. Un valore negativo inizia dalla fine della stringa. |

Esempio: espressioni del grafico

| Esempio | Risultato |
| --- | --- |
| `Index( 'abcdefg', 'cd' )` | Restituisce `3` |
| `Index(  'abcdabcd', 'b', 2 )` | Restituisce `6` (la seconda occorrenza di `b`) |
| `Index( 'abcdabcd', 'b',-2 )` | Restituisce `2` (la seconda occorrenza di `b` iniziando dalla fine) |
| `Left( Date, Index( Date,'-') -1` ) where `Date = 1997-07-14` | Restituisce `1997` |
| `Mid( Date, Index( Date, '-', 2 ) -2, 2 )` where `Date` = `1997-07-14` | Restituisce `07` |
| `Index( 'abc', 'x' )` | Restituisce `0` (`x` non esiste nella stringa `abc`) |
| `Index( 'abc', 'a', 2 )` | Restituisce `0` (non è presente la seconda occorrenza di `a`) |

## Esempio: principi fondamentali della funzione Index

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

#### Espressione del grafico

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* Un campo della tabella dati denominata `InputString`.

Script di caricamento

```
Example:
Load * inline [
InputString
abcdefg
abcdabcd ];
```

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione:

* ` InputString
                                   `

Creare le seguenti dimensioni calcolate:

* `=Index(InputString, 'cd')`

* `=Index(InputString, 'e')`

* `=Index(InputString, 'b', -1)`

Tabella dei risultati

| StringaInput | Indice(StringaInput, 'cd') | Indice(StringaInput, 'e') | Indice(StringaInput, 'b', -1) |
| --- | --- | --- | --- |
| abcdabcd | 3 | 0 | 6 |
| abcdefg | 3 | 5 | 2 |

La prima riga con la stringa `abcdabcd` restituisce:

* `3`: la prima occorrenza di `cd`

* `0`: perché `e` non si trova nella stringa

* `6`: la prima occorrenza di `b` a partire dalla fine della stringa

La seconda riga con la stringa `abcdefg` restituisce:

* `3`: la prima occorrenza di `cd`

* `5`: la prima occorrenza di `e`

* `2`: la prima occorrenza di `b` a partire dalla fine della stringa

Nota informaticaUn parametro `count` negativo esegue la scansione della stringa al contrario. Tuttavia, la posizione restituita è sempre indicata da sinistra a destra, anche se la scansione avviene al contrario.

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

#### Script di caricamento

Il codice seguente mostra come utilizzare la funzione in uno script di caricamento.

```
Example:
Load
*,
index(String, 'cd') as Index_CD,               // returns 3  in Index_CD
index(String, 'b') as Index_B,                // returns 2 in Index_B
index(String, 'b', -1) as Index_B2;           // returns 2 or 6 in Index_B2
Load * inline [
String
abcdefg
abcdabcd ];
```

Tabella dei risultati

| Stringa | Indice\_CD | Indice\_B | Indice\_B2 |
| --- | --- | --- | --- |
| abcdefg | 3 | 2 | 2 |
| abcdabcd | 3 | 2 | 6 |

## Esempio: scenario per l'applicazione della funzione Index

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

#### Espressione del grafico

Panoramica

Un centro di assistenza clienti ha un set di dati che contiene le righe dell'oggetto dei messaggi e-mail dei clienti. Il centro di assistenza vuole classificare le e-mail in base alle parole chiave che compaiono nell'oggetto, ad esempio `Refund`, `Complaint` e `Technical Issue`. Le righe dell'oggetto sono memorizzate in un campo del set di dati denominato `EmailSubject`.

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* Un campo della tabella dati denominata `EmailSubject`.

Script di caricamento

```
Example:
Load * inline [
EmailSubject
Request for a Refund - Order 12345
Technical Issue with Product XYZ
Complaint about delivery service
Follow-up on Refund Request
Technical Issue not resolved
];
```

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione:

* ` EmailSubject
                                   `

Creare la seguente dimensione calcolata:

* `=If(Index(EmailSubject, 'Refund') > 0, 'Refund', 'Other')`, per calcolare il testo dell'oggetto delle e-mail che si riferisce ai rimborsi.

Risultati

| OggettoEmail | Se(Indice(EmailSubject, 'Rimborso') &gt; 0, 'Rimborso', 'Altro') |
| --- | --- |
| Reclamo relativo al servizio di consegna | Altro |
| Follow-up sulla richiesta di rimborso | Rimborso |
| Richiesta di rimborso - Ordine 12345 | Rimborso |
| Problema tecnico non risolto | Altro |
| Problema tecnico con il prodotto XYZ | Altro |

L'output della funzione `Index` ha identificato con successo tutte le righe dell'oggetto che contengono la stringa `Refund`. Questo è un esempio di come è possibile analizzare e categorizzare i dati utilizzando funzioni annidate e fornire valore agli utenti.