KNOWLEDGE BASE

Filtern einer Tabellenberechnung anhand einer anderen Tabellenberechnung


Veröffentlicht: 22 May 2014
Zuletzt geändert am: 13 Sep 2023

Frage

Filtern einer Tabellenberechnung anhand einer anderen Tabellenberechnung Wenn beispielsweise die ursprüngliche Tabellenberechnung ein Prozentsatz des Gesamtumsatzes pro Kunde ist und die Ansicht nur auf die Top 10-Kunden gefiltert werden soll, was durch den Rang bestimmt wird, dann wird der Prozentsatz des Gesamtwerts weiterhin über alle Kunden berechnet.

Umgebung

Tableau Desktop

Antwort

Fügen Sie den Tabellenberechnungsfilter mithilfe einer IF-Anweisung zur Syntax der anderen Tabellenberechnung hinzu.

In der beigefügten Beispielarbeitsmappe werden die folgenden Anweisungen anhand des Beispieldatensatzes "Superstore" demonstriert:
Schritt 1: Ansicht einrichten
  1. Ziehen Sie [Kundenname] auf den Zeilencontainer.
  2. Ziehen Sie [Umsatz] auf "Text"auf der Karte "Markierungen".
  3. Klicken Sie mit der rechten Maustaste auf [Umsatz] in der Karte "Markierungen" und wählen Sie dann "Schnelle Tabellenberechnung > Prozent des Gesamtwerts".
  4. Klicken Sie mit der rechten Maustaste auf [Umsatz] in der Karte "Markierungen" und wählen Sie "Berechnen per > Tabelle (vertikal)".
  5. Wählen Sie "Analyse" > "Berechnetes Feld erstellen" aus.
  6. Daraufhin öffnet sich das Dialogfeld "Berechnetes Feld". Gehen Sie dort wie folgt vor und klicken Sie dann auf "OK":
    • Geben Sie einen Namen für das berechnete Feld ein. In diesem Beispiel wurde das berechnete Feld mit "Umsatzrangfolge" benannt.
    • Erstellen Sie im Formelfeld eine Berechnung ähnlich der folgenden:
      RANK(SUM([Sales]))
  7. Ziehen Sie [Umsatzrangfolge] zum Filter-Container.
  8. Wählen Sie im Filter-Dialogfeld 1 bis 10 für den Bereich aus und klicken Sie auf "OK".

Schritt 2: Erstellen der neuen Berechnung
  1. Erstellen Sie eine neue Berechnung und ziehen Sie [Umsatz] aus der Karte "Markierungen" in den Berechnungs-Editor. Tableau Desktop schreibt die Formel für den Prozentsatz des Gesamtumsatzes automatisch aus, wie folgt:

    SUM([Umsatz]) / TOTAL(SUM([Umsatz]))
     
  2. Versehen Sie jede Instanz von SUM([Umsatz]) mit einer IF-Anweisung, die nach Rängen unter 10 filtert. Die endgültige Berechnung kann wie folgt aussehen:

    IF [Umsatzrangfolge] <= 10
    THEN SUM([Sales])
    END
    /
    WINDOW_SUM(IF [Umsatzrangfolge] <= 10
    THEN SUM([Sales])
    END)



    Hinweis: Es ist auch notwendig, die Tabellenberechnung TOTAL() durch WINDOW_SUM() zu ersetzen, da TOTAL nur mit Aggregationen und nicht mit komplexeren Ausdrücken funktioniert.
     
  3. Ersetzen Sie [Umsatz] durch die neue Berechnung.
Hat dieser Artikel das Problem gelöst?