SubField() wird zur Extrahierung von Teilstring-Komponenten aus einem übergeordneten Stringfeld verwendet, bei dem die Ursprungsdatensatzfelder aus zwei oder mehr Teilen bestehen, die durch ein Trennzeichen getrennt sind.
Die Funktion Subfield() kann zum Beispiel verwendet werden, um Vor- und Nachnamen aus einer Liste von Datensätzen, die aus Vor- und Nachname bestehen, die Komponenten eines Pfadnamens oder Daten aus kommagetrennten Tabellen zu extrahieren.
Wenn Sie die Funktion Subfield() in einem LOAD-Befehl ohne den optionalen Parameter field_no verwenden, wird für jeden Teilstring ein vollständiger Datensatz generiert. Wenn mehrere Felder mit Subfield() geladen werden, werden die kartesischen Produkte aller Kombinationen erstellt.
Syntax:
SubField(text,
delimiter[, field_no ])
Rückgabe Datentyp: String
Argumente
Argument
Beschreibung
text
Der Original-String. Dabei kann es sich um hartcodierten Text, eine Variable, eine Dollarzeichenerweiterung oder eine andere Formel handeln.
delimiter
Ein Zeichen in der Eingabe text, das den String in Komponenten aufteilt.
field_no
Das optionale dritte Argument ist eine Ganzzahl, die angibt, welcher der Teilstrings des übergeordneten Strings text geliefert werden soll. Verwenden Sie den Wert 1, um den ersten Teilstring zurückzugeben, den Wert 2, um den zweiten Teilstring zurückzugeben, usw.
Wenn field_no ein positiver Wert ist, werden Teilstrings von links nach rechts extrahiert.
Wenn field_no ein negativer Wert ist, werden Teilstrings von rechts nach links extrahiert.
TipphinweisSubField() kann anstelle komplexer Kombinationen von Funktionen wie Len(), Right(), Left(), Mid() und anderen Stringfunktionen verwendet werden.
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Datensatz, der in eine Datentabelle namens Example geladen wird
Ein Feld in der Datentabelle heißt Name.
Ladeskript
Example:
Load * inline [
Name
Dave Owen
Joe Tem
];
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:
Name
Erstellen Sie die folgenden dynamischen Dimensionen:
=SubField(Name, ' ',1), um den ersten Teilstring zu extrahieren, der vor dem Leerzeichen-Trennzeichen ' ' steht.
=SubField(Name, ' ',-1), um den ersten Teilstring zu extrahieren, der vor dem Leerzeichen-Trennzeichen ' ' steht, beginnend auf der rechten Seite des Strings.
Results table
Name
SubField(Name, ' ',1)
SubField(Name, ' ',-1)
Dave Owen
Dave
Owen
Joe Tem
Joe
Tem
Die Funktion SubField() extrahiert den ersten Teilstring von Name, indem das Argument field_no auf 1 gesetzt wird. Da der Wert von field_no positiv ist, wird eine Reihenfolge von links nach rechts zum Extrahieren des Teilstrings verwendet. Ein zweiter Funktionsaufruf extrahiert den zweiten Teilstring, indem das Argument field_no auf -1 gesetzt wird. Dadurch wird der Teilstring in einer Reihenfolge von rechts nach links extrahiert.
Ladeskript
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript in eine neue Registerkarte ein.
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;
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:
Name
FirstName
SurName
Results table
Name
FirstName
SurName
Dave Owen
Dave
Owen
Joe Tem
Joe
Tem
Erläuterung
Die Funktion SubField extrahiert den ersten Teilstring Name, indem das Argument field_no auf 1 gesetzt wird. Da der Wert von field_no positiv ist, wird eine Reihenfolge von links nach rechts zum Extrahieren des Teilstrings verwendet. Ein zweiter Funktionsaufruf extrahiert den zweiten Teilstring, indem das Argument field_no auf -1 gesetzt wird. Dadurch wird der Teilstring in einer Reihenfolge von rechts nach links extrahiert.
Beispiel – Szenario für „SubField“
Übersicht
Ein Produktdatensatz enthält eine Produkttabelle. Jedes Produkt in der Tabelle hat ein Tag-Feld, das den Produktbereich identifiziert. Produkte können mehrere Werte für das Tag-Feld haben. Widget A hat zum Beispiel die folgenden Tags: Elektronik, Gadgets, Heim. Tag-Werte werden durch das Pipe-Zeichen (|) als Trennzeichen getrennt. Dieses Beispiel zeigt, wie Sie mit der Funktion SubField bestimmte Tag-Werte extrahieren können.
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Datensatz, der in eine Datentabelle namens Example geladen wird
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
ProductID
ProductName
Tags
Erstellen Sie die folgenden dynamischen Dimensionen:
=SubField(Tags, '|',1), um den ersten Eintrag im Feld Tags zu extrahieren.
=SubField(Tags, '|',2), um den zweiten Eintrag im Feld Tags zu extrahieren.
=SubField(Tags, '|',3), um den zweiten Eintrag im Feld Tags zu extrahieren.
Results table
ProductID
ProductName
Tags
SubField(Tags, '|', 1)
SubField(Tags, '|', 2)
SubField(Tags, '|', 3)
1
Widget A
Electronics|Gadgets|Home
Electronics
Gadgets
Home
2
Widget B
Electronics|Accessories
Electronics
Accessories
-
3
Widget C
Furniture|Home
Furniture
Home
-
4
Widget D
Gadgets|Accessories
Gadgets
Accessories
-
Die Ausgabe der Funktionen SubField hat erfolgreich die Tags von den entsprechenden Positionen im ursprünglichen Tags-String zurückgegeben.
Ladeskript
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript in eine neue Registerkarte ein.
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 '|');
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:
Instrument
Player
Project
Results table
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
Erläuterung
Dieses Beispiel zeigt, wie durch die Verwendung mehrerer Instanzen der Funktion Subfield() jeweils ohne den Parameter field_no aus demselben LOAD-Befehl heraus kartesische Produkte aller Kombinationen erstellt werden. Die Option DISTINCT dient dazu, die Erstellung duplizierter Datensätze zu verhindern.
Hat diese Seite Ihnen geholfen?
Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!