KNOWLEDGE BASE

Filtern von Daten durch Platzhaltersuche mit mehreren Keywords


Veröffentlicht: 09 Apr 2021
Zuletzt geändert am: 19 Jun 2023

Frage

Wie lässt sich ein einziger Platzhalter-Suchfilter erstellen, der die Suche nach mehreren nicht aufeinander folgenden Keywords ermöglicht?

Eine Suche nach "Quarz Sphinx" könnte beispielsweise "Sphinx aus schwarzem Quarz, richte über mein Versprechen" als Ergebnis liefern.

Umgebung

  • Tableau Desktop

Antwort

Das Standardverhalten der Platzhalter-Suche in Tableau ist eine exakte Phrasenübereinstimmung, wobei nicht übereinstimmender Text am Anfang und/oder Ende der Phrase möglich ist. Die Platzhalter-Suche ermöglicht Benutzern, Ansichten rasch nach bestimmten Werten zu filtern, wenn die Dimension zu viele Werte enthält, um sie durchzusehen. Mithilfe von Parametern und Berechnungen ist es möglich, eine Ansicht mit unterschiedlichen Suchverhalten zu erstellen, die in anderen Fallbeispielen hilfreich sein können, z. B. Suche nach potenziellen Duplikaten.

In der angehängten Beispiel-Arbeitsmappe (herunterladbar im rechten Bereich dieses Artikels) wird der Beispieldatensatz "Superstore" verwendet, um die folgenden Anweisungen zu illustrieren:
  1. Klicken Sie im Datenbereich links mit der rechten Maustaste auf Produktname und wählen Sie Parameter erstellen... aus.
  2. Gehen Sie im Dialogfeld "Parameter erstellen" wie folgt vor und schließen Sie das Dialogfeld:
    1. Benennen Sie den Parameter. In diesem Beispiel heißt der Parameter "Produktname suchen".
    2. Wählen Sie unter "Zulässige Werte" den Wert "Alle" aus.
  3. Klicken Sie im Datenbereich auf Produktname suchen und wählen Sie Parameter anzeigen aus.
  4. Wählen Sie Analyse > Berechnetes Feld erstellen.
  5. Daraufhin öffnet sich das Dialogfeld "Berechnetes Feld". Gehen Sie dort wie folgt vor und klicken Sie dann auf OK:
    1. Geben Sie einen Namen für das berechnete Feld ein. In diesem Beispiel heißt das berechnete Feld "Produktname-Suchfilter".
    2. Erstellen Sie im Formelfeld eine Berechnung, die das gewünschte Suchverhalten ergibt. Unten sehen Sie zwei Beispiele.

      AND – Die Filterergebnisse müssen alle Suchbegriffe enthalten, wobei die Suchbegriffe durch jeweils ein Leerzeichen getrennt sind.
      [Produktname suchen]=""
      //alles anzeigen, wenn der Parameter leer ist, d. h. alles ist TRUE
      OR (
          CONTAINS(LOWER([Produktname]),LOWER(SPLIT([Produktname suchen]," ",1)))
          //wenn [Produktname] nur den ersten eingegebenen Suchbegriff enthält
          AND ( 
              SPLIT([Produktname suchen]," ",2) = ""
              //wenn kein zweiter Suchbegriff vorhanden ist, einfach TRUE zurückgeben
              OR CONTAINS(LOWER([Produktname]),LOWER(SPLIT([Produktname suchen]," ",2)))
              //prüfen, ob der zweite Suchbegriff auch in [Produktname] ist
          )
          AND (SPLIT([Produktname suchen]," ",3)="" OR CONTAINS(LOWER([Produktname]),LOWER(SPLIT([Produktname suchen]," ",3))))
          AND (SPLIT([Produktname suchen]," ",4)="" OR CONTAINS(LOWER([Produktname]),LOWER(SPLIT([Produktname suchen]," ",4))))
          AND (SPLIT([Produktname suchen]," ",5)="" OR CONTAINS(LOWER([Produktname]),LOWER(SPLIT([Produktname suchen]," ",5))))
      )

      OR – Das Filterergebnisse muss mindestens einen der Suchbegriffe enthalten, wobei die Suchbegriffe durch jeweils ein Leerzeichen getrennt sind.
      [Produktname suchen]=""
      OR CONTAINS(LOWER([Produktname]),LOWER(SPLIT([Produktname suchen]," ",1)))
      OR (
          NOT SPLIT([Produktname suchen]," ",2)=""
          AND CONTAINS(LOWER([Produktname]),LOWER(SPLIT([Produktname suchen]," ",2)))
      ) //Wenn der 2. Suchbegriff NICHT leer und in [Produktname] enthalten ist, dann TRUE zurückgeben
      
      OR (NOT SPLIT([Produktname suchen]," ",3)="" AND CONTAINS(LOWER([Produktname]),LOWER(SPLIT([Produktname suchen]," ",3))))
      OR (NOT SPLIT([Produktname suchen]," ",4)="" AND CONTAINS(LOWER([Produktname]),LOWER(SPLIT([Produktname suchen]," ",4))))
      OR (NOT SPLIT([Produktname suchen]," ",5)="" AND CONTAINS(LOWER([Produktname]),LOWER(SPLIT([Produktname suchen]," ",5))))
      
  6. Ziehen Sie Produktname-Suchfilter auf den Filter-Container.
  7. Wählen Sie im Dialogfeld "Filter" die Option Wahr aus, und klicken Sie auf OK.
  8. Geben Sie Suchbegriffe in den Parameter Produktname suchen ein und drücken Sie die Eingabetaste, um die Ansicht zu filtern.

Zusätzliche Informationen

  • Die Berechnung muss eine Bedingung für die Anzahl der Suchbegriffe enthalten, die ein Benutzer eingeben kann. Wenn der Benutzer im obigen Beispiel mehr als 5 Suchbegriffe eingibt, werden weitere Suchbegriffe ignoriert.
  • Für einige Datenquellen, in denen Regex-Ausdrücke unterstützt werden, kann eine Regex-Berechnung automatisch die Anzahl der Suchbegriffe ermitteln. Jedoch ist Regex komplexer und wird nicht vom technischen Support von Tableau unterstützt. Hier sind einige Regex-Berechnungen, die funktionieren können:
    • [Regex String (OR)]   "(" + REGEXP_REPLACE([Produktname suchen], ',', '|') + ")"
    • [Regex String (AND)]   "(?=.*" + REPLACE([Produktname suchen], ',', ")(?=.*") + ").*"
    • [Regex Filter]   REGEXP_MATCH([Produktname], [Regex String...])
Hat dieser Artikel das Problem gelöst?