Logische Funktionen
In diesem Artikel werden logische Funktionen und deren Verwendung in Tableau vorgestellt. Außerdem wird das Erstellen einer logischen Berechnung anhand eines Beispiels dargestellt.
Warum werden logische Berechnungen verwendet?
Mithilfe logischer Berechnungen können Sie bestimmen, ob eine bestimmte Bedingung wahr oder falsch ist (boolesche Logik). Beispielsweise möchten Sie vielleicht Werte basierend auf bestimmten Grenzwerten kategorisieren.
Eine logische Berechnung sieht in etwa so aus:
IF [Profit] > 0
THEN 'Profitable'
ELSEIF [Profit] = 0 THEN 'Break even'
ELSE 'Loss'
END
In Tableau verfügbare logische Funktionen und Operatoren
AND
Syntax | <expr1> AND <expr2> |
Definition | Führt eine logische Verknüpfung von zwei Ausdrücken aus. (Wenn beide Seiten wahr sind, gibt der logische Test "true" zurück.) |
Ausgabe | Boolesch (TRUE oder FALSE) |
Beispiel | IF [Season] = "Spring" AND "[Season] = "Fall" "Wenn sowohl (Jahreszeit = Frühling) als auch (Jahreszeit = Herbst) gleichzeitig wahr sind, gib 'It's the apocalypse and footwear doesn't matter' (Das ist die Apokalypse und Schuhe spielen keine Rolle mehr) zurück.“ |
Hinweise | Wird oft mit IF und IIF verwendet. Siehe auch NOT und OR. Wenn für beide Ausdrücke Wenn Sie eine Berechnung erstellen, in der das Ergebnis eines Hinweis: Der Operator |
CASE
Syntax | CASE <expression>
|
Ausgabe | Hängt vom Datentyp der <then> -Werte ab. |
Definition | Bewertet den Ausdruck ( |
Beispiel |
"Betrachte das Feld 'Season' (Jahreszeit). Wenn der Wert 'Summer' (Sommer) lautet, gib 'Sandals' (Sandalen) zurück. Wenn der Wert 'Winter' lautet, gib 'Boots' (Stiefel) zurück. Wenn keine der Optionen in der Berechnung mit den Angaben im Feld 'Season' übereinstimmt, gib 'Sneakers' (Turnschuhe) zurück." |
Hinweise | Verwendet mit WHEN, THEN, ELSE und END. Tipp: Oft können Sie eine Gruppe verwenden, um die gleichen Ergebnisse wie eine komplizierte CASE-Funktion zu erzielen, oder Sie können CASE verwenden, um wie im vorherigen Beispiel die native Gruppierungsfunktion zu ersetzen. Wir empfehlen zu prüfen, welche Variante für Ihr Szenario die bessere Leistung erzielt. |
ELSE
Syntax | CASE <expression>
|
Definition | Ein optionaler Teil eines IF - oder CASE -Ausdrucks, mit dem ein Standardwert festgelegt wird, der zurückgegeben werden soll, wenn keiner der getesteten Ausdrücke wahr ist. |
Beispiel | IF [Season] = "Summer" THEN 'Sandals' CASE [Season] |
Hinweise | Verwendet mit CASE, WHEN, IF, ELSEIF, THEN und END
|
ELSEIF
Syntax | [ELSEIF <test2> THEN <then2>] |
Definition | Ein optionaler Teil eines IF -Ausdrucks, mit dem Bedingungen zusätzlich zum ursprünglichen IF festgelegt werden. |
Beispiel | IF [Season] = "Summer" THEN 'Sandals' |
Hinweise | Verwendet mit IF, THEN, ELSE und END
Im Gegensatz zu |
END
Definition | Wird zum Schließen eines IF - oder CASE -Ausdrucks verwendet. |
Beispiel | IF [Season] = "Summer" THEN 'Sandals' "Wenn 'Season' (Jahreszeit) = 'Summer' (Sommer), dann gib 'Sandals' (Sandalen) zurück. Wenn nicht, schau dir den nächsten Ausdruck an. Wenn Jahreszeit = Winter, dann gib 'Boots' (Stiefel) zurück. Wenn keiner der Ausdrücke wahr ist, gib 'Sneakers' (Turnschuhe) zurück. CASE [Season] "Betrachte das Feld 'Season' (Jahreszeit). Wenn der Wert 'Summer' (Sommer) lautet, gib 'Sandals' (Sandalen) zurück. Wenn der Wert 'Winter' lautet, gib 'Boots' (Stiefel) zurück. Wenn keine der Optionen in der Berechnung mit den Angaben im Feld 'Season' übereinstimmt, gib 'Sneakers' (Turnschuhe) zurück." |
Hinweise |
IF
Syntax | IF <test1> THEN <then1> |
Ausgabe | Hängt vom Datentyp der <then> -Werte ab. |
Definition | Prüft eine Reihe von Ausdrücken und gibt den Wert |
Beispiel | IF [Season] = "Summer" THEN 'Sandals' "Wenn 'Season' (Jahreszeit) = 'Summer' (Sommer), dann gib 'Sandals' (Sandalen) zurück. Wenn nicht, schau dir den nächsten Ausdruck an. Wenn Jahreszeit = Winter, dann gib 'Boots' (Stiefel) zurück. Wenn keiner der Ausdrücke wahr ist, gib 'Sneakers' (Turnschuhe) zurück. |
Hinweise |
IFNULL
Syntax | IFNULL(expr1, expr2) |
Ausgabe | Hängt vom Datentyp der <expr> -Werte ab. |
Definition | Gibt den Ausdruck |
Beispiel | IFNULL([Assigned Room], "TBD") "Wenn das Feld 'Assigned Room' (Zugewiesenes Zimmer) nicht null ist, gib seinen Wert zurück. Wenn das Feld 'Assigned Room' null ist, gib stattdessen 'TBD' (Noch nicht festgelegt) zurück." |
Hinweise | Vergleich mit ISNULL. Siehe auch ZN. |
IIF
Syntax | IIF(<test>, <then>, <else>, [<unknown>]) |
Ausgabe | Hängt vom Datentyp der Werte im Ausdruck ab. |
Definition | Prüft, ob eine Bedingung erfüllt ist (<test> ) und gibt <then> zurück, wenn der Test "true" ist, <else> , wenn der Test "false" ist, und einen optionalen Wert für <unknown> , wenn der Test null ist. Wenn die optionale Unbekannte nicht spezifiziert ist, gibt IIF null zurück. |
Beispiel | IIF([Season] = 'Summer', 'Sandals', 'Other footwear') "Wenn 'Season' (Jahreszeit) = 'Summer' (Sommer), dann gib 'Sandals' (Sandalen) zurück. Wenn nicht, gib andere Schuhe zurück" IIF([Season] = 'Summer', 'Sandals', "Wenn 'Season' (Jahreszeit) = 'Summer' (Sommer), dann gib 'Sandals' (Sandalen) zurück. Wenn nicht, schau dir den nächsten Ausdruck an. Wenn Jahreszeit = Winter, dann gib 'Boots' (Stiefel) zurück. Wenn beides nicht zutrifft, gib 'Sneakers' (Turnschuhe) zurück." IIF('Season' = 'Summer', 'Sandals', "Wenn 'Season' (Jahreszeit) = 'Summer' (Sommer), dann gib 'Sandals' (Sandalen) zurück. Wenn nicht, schau dir den nächsten Ausdruck an. Wenn Jahreszeit = Winter, dann gib 'Boots' (Stiefel) zurück. Wenn keiner der Ausdrücke wahr ist, gib 'Sneakers' (Turnschuhe) zurück." |
Hinweise |
Das heißt, in der folgenden Berechnung ist das Ergebnis rot und nicht orange, da der Ausdruck nicht weiter ausgewertet wird, sobald A=A als wahr ausgewertet wird:
|
IN
Syntax | <expr1> IN <expr2> |
Ausgabe | Boolesch (TRUE oder FALSE) |
Definition | Gibt TRUE zurück, wenn ein beliebiger Wert in <expr1> mit einem beliebigen Wert in <expr2> übereinstimmt. |
Beispiel | SUM([Cost]) IN (1000, 15, 200) "Ist der Wert des Kostenfelds 1000, 15 oder 200?" [Field] IN [Set] "Ist der Wert des Felds im Satz vorhanden?" |
Hinweise | Die Werte in Siehe auch WHEN. |
ISDATE
Syntax | ISDATE(string) |
Ausgabe | Boolesch (TRUE oder FALSE) |
Definition | Gibt "true" zurück, wenn <string> ein gültiges Datum ist. Der Eingabeausdruck muss ein Zeichenfolgenfeld (Textfeld) sein. |
Beispiel | ISDATE("2018-09-22") "Ist die Zeichenfolge 2018-09-22 ein korrekt formatiertes Datum?" |
Hinweise | Was als gültiges Datum gilt, hängt vom Gebietsschema(Link wird in neuem Fenster geöffnet) des Systems ab, das die Berechnung auswertet. Beispiel: In den USA:
Im Vereinigten Königreich:
|
ISNULL
Syntax | ISNULL(expression) |
Ausgabe | Boolesch (TRUE oder FALSE) |
Definition | Gibt "true" zurück, wenn |
Beispiel | ISNULL([Assigned Room]) "Ist das Feld 'Assigned Room" (Zugewiesenes Zimmer) null?" |
Hinweise | Vergleichen Sie dieses mit IFNULL. Siehe auch ZN. |
MAX
Syntax | MAX(expression) oder MAX(expr1, expr2) |
Ausgabe | Gleicher Datentyp wie das Argument oder NULL , wenn ein Teil des Arguments null ist. |
Definition | Gibt den Maximalwert der zwei Argumente zurück, die vom selben Datentyp sein müssen.
|
Beispiel | MAX(4,7) = 7 |
Hinweise | Für Zeichenfolgen
Bei Datenquellen einer Datenbank ist der Zeichenfolgenwert Für Datumsangaben Für Datumsangaben ist Als Aggregation
Als Vergleich
Siehe auch |
MIN
Syntax | MIN(expression) oder MIN(expr1, expr2) |
Ausgabe | Gleicher Datentyp wie das Argument oder NULL , wenn ein Teil des Arguments null ist. |
Definition | Gibt den Minimalwert der zwei Argumente zurück, die vom selben Datentyp sein müssen.
|
Beispiel | MIN(4,7) = 4 |
Hinweise | Für Zeichenfolgen
Bei Datenquellen einer Datenbank ist der Zeichenfolgenwert Für Datumsangaben Für Datumsangaben ist Als Aggregation
Als Vergleich
Siehe auch |
NOT
Syntax | NOT <expression> |
Ausgabe | Boolesch (TRUE oder FALSE) |
Definition | Führt eine logische Negation eines Ausdrucks durch. |
Beispiel | IF NOT [Season] = "Summer" "Wenn die 'Season' (Jahreszeit) nicht gleich 'Summer' (Sommer) ist, dann gib 'Don't wear sandals' (Keine Sandalen tragen) zurück. Wenn nicht, gib 'Wear sandals' (Trag Sandalen) zurück." |
Hinweise |
OR
Syntax | <expr1> OR <expr2> |
Ausgabe | Boolesch (TRUE oder FALSE) |
Definition | Führt eine logische Disjunktion von zwei Ausdrücken aus. |
Beispiel | IF [Season] = "Spring" OR [Season] = "Fall" "Wenn entweder (Jahreszeit = Spring) oder (Season = Fall) (Jahreszeit= Herbst) zutrifft, dann gib 'Sneakers' (Turnschuhe) zurück." |
Hinweise | Wird oft mit IF und IIF verwendet. Siehe auch AND und NOT. Wenn für einen der beiden Ausdrücke Wenn Sie eine Berechnung erstellen, in der in einem Arbeitsblatt das Ergebnis eines Hinweis: Der Operator |
THEN
Syntax | IF <test1> THEN <then1>
|
Definition | Ein erforderlicher Teil eines IF -, ELSEIF - oder CASE -Ausdrucks, mit dem definiert wird, welches Ergebnis zurückgegeben werden soll, wenn ein bestimmter Wert oder Test "true" ist. |
Beispiel | IF [Season] = "Summer" THEN 'Sandals' "Wenn 'Season' (Jahreszeit) = 'Summer' (Sommer), dann gib 'Sandals' (Sandalen) zurück. Wenn nicht, schau dir den nächsten Ausdruck an. Wenn Jahreszeit = Winter, dann gib 'Boots' (Stiefel) zurück. Wenn keiner der Ausdrücke wahr ist, gib 'Sneakers' (Turnschuhe) zurück. CASE [Season] "Betrachte das Feld 'Season' (Jahreszeit). Wenn der Wert 'Summer' (Sommer) lautet, gib 'Sandals' (Sandalen) zurück. Wenn der Wert 'Winter' lautet, gib 'Boots' (Stiefel) zurück. Wenn keine der Optionen in der Berechnung mit den Angaben im Feld 'Season' übereinstimmt, gib 'Sneakers' (Turnschuhe) zurück." |
Hinweise |
WHEN
Syntax | CASE <expression>
|
Definition | Ein erforderlicher Teil eines CASE -Ausdrucks. Sucht den ersten <value> , der mit <expression> übereinstimmt, und gibt den entsprechenden <then> -Wert zurück. |
Beispiel | CASE [Season] "Betrachte das Feld 'Season' (Jahreszeit). Wenn der Wert 'Summer' (Sommer) lautet, gib 'Sandals' (Sandalen) zurück. Wenn der Wert 'Winter' lautet, gib 'Boots' (Stiefel) zurück. Wenn keine der Optionen in der Berechnung mit den Angaben im Feld 'Season' übereinstimmt, gib 'Sneakers' (Turnschuhe) zurück." |
Hinweise | Verwendet mit CASE, THEN, ELSE und END.
CASE <expression> Die Werte, mit denen |
ZN
Syntax | ZN(expression) |
Ausgabe | Abhängig vom Datentyp von <expression> oder 0. |
Definition | Gibt den <expression>-Wert zurück, sofern er nicht null ist; andernfalls wird 0 zurückgegeben. |
Beispiel | ZN([Test Grade]) "Wenn 'Test Grade' (Testnote) nicht null ist, gib ihren Wert zurück. Wenn 'Test Grade' null ist, gib 0 zurück." |
Hinweise |
Siehe auch ISNULL. |
Hinweis: Einige davon sind nämlich logische Operatoren und erscheinen in Schwarz, nicht in Blau. Weitere Informationen finden Sie unter Operatorsyntax.
CASE ist oft einfacher anzuwenden als IF oder IIF. In vielen Fällen können IF, IIF und CASE austauschbar verwendet werden. Eine CASE-Anweisung kann immer in eine IF-Anweisung umgeschrieben werden, auch wenn die CASE-Funktion im Allgemeinen prägnanter und leichter verständlich ist. Allerdings können nicht alle IF-Anweisungen als CASE-Anweisungen geschrieben werden, da sich jedes ELSEIF auf ein anderes Feld beziehen könnte.
Tipp: Vergleichen wir ein Beispiel mit derselben Logik für diese drei Funktionen:
CASE | IF | IIF |
CASE [Region] | IF [Region] = 'West' THEN 1 | IIF([Region] = 'West', 1, |
Die CASE-Struktur ist sehr einfach und leicht zu schreiben und zu verstehen. Allerdings kann der Ausdruck (hier [Region]) im Gegensatz zu IF oder IIF keine logische Operation sein. Nullen werden für CASE genauso behandelt wie für IF. | Die Struktur von IF THEN lässt mehrere ELSEIF-Klauseln zu, was Mehrfachauswertungen viel einfacher macht als mit IIF. Nullbehandlung: Alle unbekannten (Null-)Ergebnisse werden von derselben ELSE-Klausel behandelt wie falsche Ergebnisse. Hier wird jeder Region außer den vier angegebenen (einschließlich Null) der Wert 5 zugewiesen. | Die IIF-Struktur behandelt unbekannte Ergebnisse anders als falsche Ergebnisse und hat eine andere Syntax als IF. Der Nachteil der spezifischen Nullbehandlung ist die Verschachtelung, wie oben beschrieben, die schwer zu schreiben und zu verstehen sein kann. Nullbehandlung: Jedem anderen als den vier angegebenen Nicht-Null-Bereichen wird der Wert 5 zugewiesen, einem Nullwert wird jedoch eine 0 zugewiesen. |
Hinweis: Oftmals können Sie eine Gruppe verwenden, um die gleichen Ergebnisse wie mit einer komplizierten CASE-Funktion zu erhalten. Testen Sie, ob eine Option leistungsfähiger ist als die andere.
Beispiele
CASE-Funktionen können für Szenarien wie das erneute Aliasing nützlich sein:
CASE LEFT(DATENAME('weekday',[Order Date]),3)
WHEN 'Sun' THEN 0
WHEN 'Mon' THEN 1
WHEN 'Tue' THEN 2
WHEN 'Wed' THEN 3
WHEN 'Thu' THEN 4
WHEN 'Fri' THEN 5
WHEN 'Sat' THEN 6
END
Oder um dem Endbenutzer die Möglichkeit zu geben, auszuwählen, welche Kennzahl in einem Diagramm angezeigt werden soll, wenn es mit einem Parameter(Link wird in neuem Fenster geöffnet) verwendet wird:
CASE [Choose a Measure]
WHEN "Sales" THEN SUM([Sales])
WHEN "Profit" THEN AVG([Profit])
WHEN "Quantity" THEN COUNT([Quantity])
WHEN "Shipping Cost" THEN MEDIAN([Shipping Cost])
END
Erstellen einer logischen Berechnung
Sehen Sie sich die nachfolgend aufgeführten Schritte an, um mehr über das Erstellen einer logischen Berechnung zu erfahren.
- Stellen Sie in Tableau Desktop eine Verbindung zur standardmäßig in Tableau enthaltenen gespeicherten Datenquelle Beispiel – Superstore her.
- Navigieren Sie zu einem Arbeitsblatt.
- Ziehen Sie den Wert Staat aus dem Bereich Daten in den Zeilen-Container.
- Ziehen Sie den Wert Kategorie aus dem Bereich Daten in den Zeilen-Container, und platzieren Sie ihn rechts neben dem Wert "Staat".
- Ziehen Sie den Wert Umsatz aus dem Bereich Daten in den Spalten-Container.
- Wählen Sie Analyse > Berechnetes Feld erstellen aus.
- Gehen Sie in dem anschließend geöffneten Berechnungs-Editor wie folgt vor:
- Geben Sie dem berechneten Feld den Namen "KPI".
- Geben Sie die folgende Formel ein:
SUM([Profit]) > 0
Mit dieser Berechnung überprüfen Sie schnell, ob ein Element größer als 0 ist. Ist dies der Fall, wird "true" zurückgegeben, wenn nicht, wird "false" zurückgegeben.
- Klicken Sie auf OK, wenn Sie fertig sind.
- Ziehen Sie den Wert KPI aus dem Bereich Daten in den Bereich Farbe auf der Karte "Markierungen".
Sie können nun sehen, in welchen Kategorien die einzelnen Staaten Umsatzeinbußen haben.
Das neue berechnete Feld wird unter "Kennzahlen" im Datumsbereich angezeigt. Wie bei Ihren anderen Feldern können Sie es in einer oder mehreren Visualisierungen verwenden.
Siehe auch
Visualisieren von wichtigen Fortschrittsindikatoren