Kurs
Die Funktion SWITCH()
in Power BI ist eine logische DAX-Funktion, die eine strukturiertere und lesbarere Möglichkeit bietet, mehrere Bedingungen zu behandeln als verschachtelte IF()
Anweisungen.
In diesem Lernprogramm werden wir die Funktion SWITCH()
im Detail untersuchen. Wir werden besprechen, was die Funktion ist, wie sie verwendet wird und welche Fallstricke es gibt und wie man die Funktion am besten einsetzt.
Um den Einstieg in Power BI und DAX zu finden, schau dir unseren Lernpfad zu den Power BI-Grundlagen an und halte unser DAX Cheat Sheet bereit, das dir die nützlichsten DAX-Funktionen auf einen Blick zeigt.
Was ist die SWITCH-Funktion in Power BI?
Die Funktion SWITCH()
in DAX für Power BI erleichtert das Schreiben von bedingten Anweisungen. Sie wertet einen Ausdruck aus, vergleicht ihn mit einer Reihe von Werten und gibt das erste passende Ergebnis zurück.
SWITCH()
kann mehrere verschachtelte IF()
Anweisungen ersetzen, indem sie mehrere Bedingungen in einer einzigen Funktion zusammenfasst. Dies führt zu saubereren, einfacheren DAX-Ausdrücken, die leichter zu lesen und zu pflegen sind. Außerdem verbessert es die Lesbarkeit deiner Formeln, so dass du und andere deine Berechnungen leichter verstehen und ändern können.
Grundlegende Syntax und Verwendung
Die grundlegende Syntax für die Funktion SWITCH()
lautet:
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
- Ausdruck: Der Ausdruck, der ausgewertet wird.
- Wert: Die Werte, die mit dem Ausdruck verglichen werden.
- Ergebnis: Die Ergebnisse, die zurückgegeben werden, wenn der Ausdruck mit dem entsprechenden Wert übereinstimmt.
- Else: Ein optionales Ergebnis, das zurückgegeben wird, wenn keiner der Werte mit dem Ausdruck übereinstimmt.
Hier ist ein kurzer Tipp zum Lesen der grundlegenden Syntaxanweisungen (wie die obige), die du häufig in Tutorials und in der offiziellen Microsoft Power BI-Dokumentation findest. Die obige Anweisung zeigt zwei und
Parametersätze, wobei der zweite Satz in eckigen Klammern steht. Das bedeutet, dass es mehr als einen Satz von Werten und Ergebnissen geben kann, die für die Funktion
SWITCH()
optional sind. Auch der Teil der Funktion ist in eckige Klammern eingeschlossen, also ebenfalls optional.
Vergleich mit verschachtelten IF-Anweisungen
Die herkömmliche Art, mehrere Bedingungen in DAX zu behandeln, würde verschachtelte IF-Anweisungen beinhalten, die schnell komplex und schwer zu lesen werden können. Um zum Beispiel vier Bedingungen zu behandeln, wären drei verschachtelte IF-Funktionen erforderlich. Die Funktion SWITCH()
hingegen vereinfacht dies, indem sie eine einfache Liste von Bedingungs-Ergebnis-Paaren ermöglicht, was sowohl die Lesbarkeit als auch die Wartbarkeit verbessert.
Obwohl mehrere verschachtelte IF-Anweisungen das gleiche Ergebnis erzielen können wie SWITCH()
, wird SWITCH()
immer noch bevorzugt, weil sie einfacher zu schreiben und weniger fehleranfällig sind. Viele IF()
Anrufe können sich auch negativ auf die Leistung eines Berichts auswirken. Es ist jedoch gut, daran zu denken, dass die Funktion SWITCH()
auch die Berichtsleistung beeinflussen kann. Deshalb werden wir später in diesem Lernprogramm Strategien zur Optimierung deiner SWITCH()
Funktionen und einige Best Practices besprechen.
Eignung für komplexe Berechnungen
SWITCH()
eignet sich besonders für Szenarien, in denen du eine definierte Menge möglicher Werte für einen Ausdruck und ein entsprechendes Ergebnis für jeden hast.
Das ist sauberer und effizienter als mehrere verschachtelte IF()
Anweisungen zu verwenden, vor allem wenn die Anzahl der Bedingungen wächst. Das macht SWITCH()
zu einer hervorragenden Wahl für komplexe Berechnungen, bei denen es auf Lesbarkeit und Leistung ankommt.
Obwohl SWITCH()
die Lesbarkeit verbessern kann, hängen die Leistungsvorteile gegenüber verschachtelten IF()
Anweisungen weitgehend vom jeweiligen Anwendungsfall und dem zugrunde liegenden Datenmodell ab.
Wie man die SWITCH-Funktion in Power BI verwendet
Diese Beispiele zeigen, wie vielseitig die Funktion SWITCH()
für verschiedene Geschäftsszenarien in Power BI eingesetzt werden kann. Indem du komplexe verschachtelte IF()
Anweisungen durch SWITCH()
ersetzt, kannst du übersichtlichere und besser wartbare DAX-Formeln erstellen.
Beispiel 1: Analyse der Verkaufskategorie
Stell dir vor, ein Unternehmen möchte seine Verkäufe auf der Grundlage des Gesamtumsatzes in verschiedene Stufen einteilen, um seine Verkaufsleistung besser analysieren zu können.
In der folgenden DAX-Formel verwenden wir die Funktion SWITCH()
, um eine Umsatzkategorie auf der Grundlage des Gesamtumsatzes zuzuweisen. Du wirst feststellen, dass wir die logische Funktion TRUE()
als Ausdruck in unserer Formel verwenden. Das liegt daran, dass SWITCH()
nur nach exakten Übereinstimmungen sucht und wir in unserer Formel Operatoren wie größer als und kleiner als verwenden wollen. Wenn du den Ausdruck auf TRUE()
setzt, wertet SWITCH()
jede Bedingung aus, bis eine Übereinstimmung gefunden wird (d. h. wenn das Ergebnis wahr ist).
Sales Category =
SWITCH(
TRUE(),
[Total Sales] < 10000, "Low Sales",
[Total Sales] < 50000, "Medium Sales",
[Total Sales] >= 50000, "High Sales",
"Unknown")
Hier ist das Ergebnis in Power BI:
Beispiel 2: Produkt-Rabattstrategie
Angenommen, eine Einzelhandelskette wendet auf Produkte je nach ihrem Nettoverkaufspreis unterschiedliche Rabattprozentsätze an, um die Rentabilität zu maximieren. Sie wollen den Gesamtwert der rabattierten Verkäufe in ihrem Laden berechnen.
In der folgenden DAX-Formel verwenden wir die Funktion SWITCH()
innerhalb einer Variablen. Da wir die Formel für den Rabattprozentsatz nirgendwo anders in unserem Bericht verwenden müssen, können wir wiederholte Berechnungen reduzieren und sie nur innerhalb dieser Formel für rabattierte Verkäufe auswerten.
DiscountedSales =
VAR DiscountPct = SWITCH(
TRUE,
Sales[Net Price] <= 150, 0.15,
Sales[Net Price] <= 500, 0.2,
Sales[Net Price] <= 1000, 0.3,
0
)
VAR DiscountAmount = Sales[SalesAmount] * (1 - DiscountPct)
RETURN
DiscountAmount
Hier ist das Ergebnis in Power BI:
Häufige Fallstricke und wie du sie vermeidest
Dieser Abschnitt befasst sich mit einigen häufigen Fallstricken bei der Verwendung der Funktion SWITCH()
und gibt Empfehlungen, wie diese vermieden werden können.
1. Übermäßiger Gebrauch für einfache Bedingungen
Die Verwendung von SWITCH()
für Szenarien, in denen eine einfache IF-Anweisung ausreichen würde, kann deine DAX-Formeln unnötig verkomplizieren.
Reserviere stattdessen SWITCH()
für Fälle mit mehreren Bedingungen. Für eine oder zwei Bedingungen kannst du der Einfachheit halber IF verwenden.
2. Auswirkungen auf die Leistung bei großen Datensätzen
Die häufige Verwendung der Funktion SWITCH()
, insbesondere bei komplexen Ausdrücken, kann die Berichtsleistung bei großen Datensätzen verlangsamen.
Optimiere Ausdrücke in SWITCH()
, indem du komplexe Teile mithilfe von Variablen vorberechnest. Variablen machen den Ausdruck SWITCH()
sauberer und verständlicher und tragen indirekt zur Optimierung bei, indem sie die Wahrscheinlichkeit redundanter oder unnötiger Berechnungen verringern.
Berechne allgemeine Ausdrücke oder komplexe Teile deiner Bedingungen einmal und speichere sie in Variablen. Dadurch wird vermieden, dass derselbe Ausdruck innerhalb der Funktion SWITCH()
mehrmals neu berechnet wird.
3. Ineffiziente Standardnutzung
Wenn du den Standardfall in SWITCH()
missbrauchst, um mit Fehlern oder unerwarteten Werten umzugehen, ohne dies zu berücksichtigen, kann dies zu falschen Ergebnissen führen.
Definiere die Bedingungen klar und behandle bekannte Szenarien explizit. Verwende Funktionen wie IFERROR
oder ISBLANK
, um unerwartete oder fehlende Werte zu verwalten.
4. Kontext missverstehen
Wenn du vergisst, dass SWITCH()
im aktuellen Kontext ausgewertet wird, kann das zu unerwarteten Ergebnissen führen, besonders wenn du es in Zeilen- oder Filterkontexten verwendest. Schau dir unseren Kurs Einführung in DAX an, in dem wir Kontexte ausführlicher behandeln.
Wenn du deine SWITCH()
Ausdrücke entwirfst, berücksichtige immer den aktuellen Zeilen- oder Filterkontext. Verwende Kontextübergangsfunktionen wie CALCULATE()
mit Bedacht, um den Kontext nach Bedarf anzupassen.
5. Reihenfolge der Operationen
Das Übersehen der Reihenfolge der Bedingungen in der SWITCH()
Anweisung kann zu unerwarteten Ergebnissen führen, da die SWITCH()
Funktion die Bedingungen in der Reihenfolge auswertet, in der sie definiert sind, und die erste passende Bedingung verwendet.
Achte darauf, dass jeder Fall in der richtigen Reihenfolge erscheint, genau wie bei den verschachtelten IF()
Anweisungen.
SWITCH Best Practices
Hier sind einige Best Practices für die effektive Nutzung von SWITCH()
:
-
Verwendung für mehrere Bedingungen:
SWITCH()
ist ideal, wenn du mehr als zwei bedingte Prüfungen hast. So ist deine Formel leichter zu lesen und zu pflegen als verschachtelteIF()
Anweisungen. -
Definiere alle Fälle klar und deutlich: Deine
SWITCH()
Funktion sollte alle möglichen Szenarien abdecken, einschließlich eines Standardfalls, um unerwartete Werte zu behandeln. So wird sichergestellt, dass deine Berechnungen robust und weniger fehleranfällig sind. -
Optimiere für die Leistung: Halte die Ausdrücke in
SWITCH()
so einfach wie möglich, um Leistungseinbußen bei der Arbeit mit großen Datensätzen zu vermeiden. Die Verwendung von Variablen zur Speicherung von Zwischenergebnissen kann helfen, den Rechenaufwand zu minimieren. -
Teste gründlich: Besonders wenn du
SWITCH()
für komplexe Logik verwendest, solltest du deine Ergebnisse in verschiedenen Szenarien gründlich testen. So kannst du Logikfehler oder Fälle, die du übersehen hast, erkennen.
Fazit
Wenn du nach einer effizienteren und vielseitigeren Möglichkeit suchst, mehrere Bedingungen in Power BI zu verarbeiten, ist SWITCH()
die Antwort. Im Gegensatz zu verschachtelten IF-Anweisungen fasst die Funktion SWITCH()
mehrere Bedingungen in einer einzigen Funktion zusammen, was zu saubereren und einfacheren DAX-Ausdrücken führt, die leichter zu lesen und zu pflegen sind. Außerdem verbessert es die Lesbarkeit deiner Formeln und macht es dir und anderen leichter, deine Berechnungen zu verstehen und zu ändern.
Vermeide jedoch einige häufige Fehler, wenn du die Funktion SWITCH()
verwendest, und befolge die bewährten Methoden, die wir in diesem Lernprogramm besprochen haben.
Wenn du ernsthaft vorhast, eine Karriere als Power BI-Entwickler/in zu starten, dann schau dir unseren Schritt-für-Schritt-Leitfaden für BI-Entwickler/innen und den kompletten Lernpfad für Datenanalyst/innen in Power BI an, in dem du alles lernst, was du wissen musst, um Power BI in der Praxis einzusetzen.
Werde ein Power BI Datenanalyst
Beherrsche das beliebteste Business Intelligence Tool der Welt.
