# SubField - funzione dello script e del grafico

SubField() consente di estrarre i componenti della sottostringa da un campo della stringa padre, in cui i campi del record originali sono costituiti da due o più parti separate da un delimitatore.

La funzione Subfield(), ad esempio, consente di estrarre il nome di battesimo e il cognome da un elenco di record composto da nomi completi, le parti del componente di un nome del percorso o di estrarre dati da tabelle separate da virgole.

Se si utilizza la funzione Subfield() in un'istruzione LOAD escludendo il parametro field\_no opzionale, per ogni sottostringa verrà generato un record completo. Se diversi campi vengono caricati utilizzando Subfield(), vengono creati i prodotti cartesiani di tutte le combinazioni.

Sintassi:

SubField(text, delimiter[, field\_no ])

Tipo di dati restituiti: stringa

Argomenti:

Argomenti

| Argomento | Descrizione |
| --- | --- |
| text | La stringa originale. Può trattarsi di un testo codificato in forma rigida, una variabile, un'espansione del segno del dollaro o un'altra espressione. |
| delimiter | Un carattere all'interno del text di input che divide la stringa in parti del componente. |
| field\_no | Il terzo argomento opzionale è un numero intero che specifica la sottostringa della stringa principale text che verrà restituita. Utilizzare il valore 1 per restituire la prima sottostringa, 2 per restituire la seconda sottostringa e così via.<br><br><ul> <li>Se <span>field_no</span> è un valore positivo, le sottostringhe vengono estratte da sinistra a destra.</li> <li>Se <span>field_no</span> è un valore negativo, le sottostringhe vengono estratte da destra a sinistra.</li> </ul> |

Nota di suggerimento È possibile utilizzare SubField() invece di utilizzare combinazioni di funzioni complesse, come ad esempio Len(), Right(), Left(), Mid() e altre funzioni delle stringhe.

Esempio: espressioni del grafico

| Esempio | Risultato |
| --- | --- |
| `SubField(S,   ';' ,2)` | Restituisce 'cde' se S è 'abc;cde;efg'. |
| `SubField(S,   ';' ,1)` | Restituisce una stringa vuota se S è una stringa vuota. |
| `SubField(S,   ';' ,1)` | Restituisce una stringa vuota se S è ';'. |
| Si supponga di disporre di una variabile contenente il nome di percorso vMyPath,<br><br>`Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps;`. | In un grafico testo e immagine, è possibile aggiungere una misura come:<br>`SubField(vMyPath, '\',-3``)`, che restituisce 'Qlik', poiché si tratta della terza sottostringa a partire dall'estremità destra della variabile vMyPath. |

## Esempi: script ed espressioni del grafico che usano SubField

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

#### Esempi - script ed espressioni del grafico

### Esempi base

| Esempio | Risultato |
| --- | --- |
| `SubField(S,   ';' ,2)` | Restituisce 'cde' se S è 'abc;cde;efg'. |
| `SubField(S,   ';' ,1)` | Restituisce una stringa vuota se S è una stringa vuota. |
| `SubField(S,   ';' ,1)` | Restituisce una stringa vuota se S è ';'. |
| Si supponga di disporre di una variabile contenente il nome di percorso vMyPath,<br><br>`Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps;`. | In un grafico testo e immagine, è possibile aggiungere una misura come:<br>`SubField(vMyPath, '\',-3``)`, che restituisce 'Qlik', poiché si tratta della terza sottostringa a partire dall'estremità destra della variabile vMyPath. |

### Esempio script 1

#### Script di caricamento

Caricare le espressioni di script e i dati seguenti nell'editor caricamento dati.

```
FullName:
					
LOAD * inline [
Name
'Dave Owen'
'Joe Tem'
];

SepNames:

Load Name,
SubField(Name, ' ',1) as FirstName,
SubField(Name, ' ',-1) as Surname
Resident FullName;
Drop Table FullName;
```

#### Creazione di una visualizzazione

Creare una visualizzazione tabella in un foglio Qlik Sense con Name, FirstName e SurName come dimensioni.

#### Risultato

| Name | FirstName | SurName |
| --- | --- | --- |
| Dave Owen | Dave | Owen |
| Joe Tem | Joe | Tem |

#### Spiegazione

La funzione SubField() estrae la prima sottostringa Name impostando l'argomento field\_no su 1. Dato che il valore di field\_no è positivo, viene seguito un ordine da sinistra a destra per l'estrazione della sottostringa. Una seconda chiamata funzione estrae la seconda sottostringa impostando l'argomento field\_no a -1, che estrae la sottostringa seguendo un ordine da desta a sinistra.

### Esempio script 2

#### Script di caricamento

Caricare le espressioni di script e i dati seguenti nell'editor caricamento dati.

```
LOAD DISTINCT
Instrument,
SubField(Player,',') as Player,
SubField(Project,',') as Project;

Load * inline [
Instrument|Player|Project
Guitar|Neil,Mike|Music,Video
Guitar|Neil|Music,OST
Synth|Neil,Jen|Music,Video,OST
Synth|Jo|Music
Guitar|Neil,Mike|Music,OST
] (delimiter is '|');
```

#### Creazione di una visualizzazione

Creare una visualizzazione tabella in un foglio Qlik Sense con Instrument, Player e Project come dimensioni.

#### Risultato

| Instrument | Player | Project |
| --- | --- | --- |
| Guitar | Mike | Music |
| Guitar | Mike | Video |
| Guitar | Mike | OST |
| Guitar | Neil | Music |
| Guitar | Neil | Video |
| Guitar | Neil | OST |
| Synth | Jen | Music |
| Synth | Jen | Video |
| Synth | Jen | OST |
| Synth | Jo | Music |
| Synth | Neil | Music |
| Synth | Neil | Video |
| Synth | Neil | OST |

#### Spiegazione

Questo esempio mostra come l'utilizzo di più istanze della funzione Subfield(), ciascuna delle quali non include il parametro field\_no, dall'interno della stessa istruzione LOAD crei prodotti cartesiani di tutte le combinazioni. L'opzione DISTINCT viene utilizzata per evitare la creazione di record duplicati.