# SubField - skript- och diagramfunktion

Subfield() används för att extrahera delsträngkomponenter från ett överordnat strängfält där de ursprungliga postfälten består av två eller fler delar, som separeras av en avgränsare.

Subfield()-funktionen kan användas till exempel för att extrahera förnamn och efternamn från en lista av poster som innehåller fullständiga namn, komponentdelarna i ett sökvägsnamn eller för att extrahera data från kommaavgränsade tabeller.

Om du använder funktionen Subfield() i en LOAD-sats med den valbara field\_no-parametern utelämnad kommer en fullständig post genereras för varje delsträng. Om flera fält laddas med hjälp av Subfield() skapas de kartesiska produkterna för alla kombinationer.

Syntax:

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

Returnerad datatyp: sträng

Argument:

SubField-argument

| Argument | Beskrivning |
| --- | --- |
| text | Den ursprungliga strängen. Detta kan vara en hårdkodad text, en variabel, en dollarteckensexpansion eller ett annat uttryck. |
| delimiter | Ett tecken med indata-text som delar in strängen i dess komponentdelar. |
| field\_no | Det valbara tredje argumentet är ett heltal som vilka av delsträngarna i den överordnade strängen text som ska returneras.<br><br><ul> <li>Om <span>field_no</span> är ett positivt värde extraheras delsträngar från vänster till höger.</li> <li>Om <span>field_no</span> är ett negativt värde extraheras delsträngar från höger till vänster.</li> </ul> |

Anteckning om tips SubField() kan användas istället för att använda komplexa kombinationer av funktioner, som t.ex. Len(), Right(), Left(), Mid() och andra strängfunktioner.

Exempel och resultat:

Exempel 1–3

| Exempel | Resultat |
| --- | --- |
| ` SubField('abc;cde;efg', ';', 2)  ` | Returnerar 'cde' |
| ` SubField('', ';', 1)  ` | Returnerar NULL |
| ` SubField(';', ';', 1)  ` | Returnerar en tom sträng |

Lägg till exempelskriptet i dokumentet och kör det. Lägg sedan till åtminstone de fält som listas i resultatkolumnen på ett ark i dokumentet för att se resultatet.

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

Exempel 4

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

Antag att du har en variabel som innehåller namnet på en sökväg vMyPath,

`Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps;`.

I ett text- och bilddiagram kan du lägga till mått, t.ex.  
`SubField(vMyPath, '\',-3``)`, som resulterar i 'Qlik', eftersom det är den tredje delsträngen till höger om variabeln vMyPath.

I det här exemplet visas hur flera rader skapas från en förekomst av Subfield().

Lägg till exempelskriptet i dokumentet och kör det. Lägg sedan till åtminstone de fält som listas i resultatkolumnen på ett ark i dokumentet för att se resultatet.

`LOAD DISTINCT` `Player,` `SubField(Project,',') as Project;` ` ` `Load * inline [` `Player|Project` `Neil|Music,OST` `Jo|Music` `Mike|Music,OST,Video` `] (delimiter is '|');`

Exempel 5

| Player | Project |
| --- | --- |
| Neil | Music |
| Neil | OST |
| Jo | Music |
| Mike | Music |
| Mike | OST |
| Mike | Video |

Det här exemplet visar hur användning av flera instanser av Subfield()-funktionen inifrån samma LOAD-sats, och där field\_no-parametern har utelämnats i alla instanser, skapar kartesiska produkter av alla kombinationer. Alternativet DISTINCT används för att undvika att dubblettposter skapas.

Lägg till exempelskriptet i dokumentet och kör det. Lägg sedan till åtminstone de fält som listas i resultatkolumnen på ett ark i dokumentet för att se resultatet.

`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 '|');`

Exempel 6

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