KNOWLEDGE BASE

Extrahieren von durch Zeichen getrennte Teilzeichenfolgen aus Zeichenfolgen


Veröffentlicht: 13 Dec 2013
Zuletzt geändert am: 11 Mar 2024

Frage

Vorgehensweise zum Extrahieren einer Zeichenfolge mit bestimmten Start- und Endzeichen als Trennzeichen aus einer umfangreicheren Zeichenfolge.

Umgebung

  • Tableau Desktop

Antwort

Die folgenden Anweisungen beschreiben das Extrahieren einer Teilzeichenfolge aus einer langen Zeichenfolge und können in der angehängten Arbeitsmappe nachvollzogen werden.
  1. Wählen Sie Analyse > Berechnetes Feld erstellen aus.
  2. Gehen Sie im geöffneten Dialogfeld "Berechnetes Feld" wie folgt vor:
    • Geben Sie einen Namen für das berechnete Feld ein. In der Beispielarbeitsmappe heißt das berechnete Feld Teilzeichenfolge.
    • Erstellen Sie im Formelfeld ein berechnetes Feld ähnlich dem folgenden:
      IF CONTAINS([<Dimension>], '<Identifying Character 1>') THEN
      MID(
          [<Dimension>],
          FIND([<Dimension>],'<Identifying Character 1>') + 1,
          FIND([<Dimension>],'<Identifying Character 2>') - (FIND([<Dimension>],'<Identifying Character 1>') +1)
      )
      END
      
  3. Klicken Sie auf OK.
  4. Ziehen Sie die Teilzeichenfolge auf den Container Zeilen.

Zusätzliche Informationen

  • Diese Berechnung enthält nicht die identifizierenden Zeichen in der finalen Teilzeichenfolge. Entfernen Sie zum Einbeziehen der identifizierenden Zeichen "+1" an beiden Stellen in der oben aufgeführten Berechnung.
  • Die IF-Anweisung mit der Bedingung CONTAINS([<Dimension>], '<Identifying Character 1>') filtert die Zeichenfolgen heraus, die das erste identifizierende Zeichen nicht enthalten. Dies ist nötig, weil FIND() 0 zurückgibt, wenn das Zeichen nicht gefunden wird, das weiterhin eine gültige Startposition für MID() ist.
  • "Identifizierendes Zeichen 1" würde am Anfang der gewünschten Teilzeichenfolge stehen.
  • "Identifizierendes Zeichen 2" würde am Ende der gewünschten Teilzeichenfolge stehen.
  • Verwenden Sie beim Suchen der Teilzeichenfolge zwischen 2 Instanzen desselben Zeichens (z. B. "Hund" in der Zeichenfolge "Der *Hund* ist braun") für die zweite Instanz FINDNTH() anstelle von FIND(). Dies kann wie folgt aussehen:
    • MID(
          [<Dimension>],
          FIND([<Dimension>],'<Identifying Character>') + 1,
          FINDNTH([<Dimension>],'<Identifying Character>', 2) - (FIND([<Dimension>],'<Identifying Character>') +1)
      )
      
Hat dieser Artikel das Problem gelöst?