DAX und Datenmodelle
DAX in Power BI: Leitfaden vom Einstieg bis Profi
DAX ist die Formelsprache hinter Power-BI-Measures. Überblick zu Kontext, CALCULATE, Variablen, Time Intelligence und Rangfolgen.
Sajagan Thirugnanam
·
Aktualisiert
DAX (Data Analysis Expressions) ist die Formelsprache, mit der Power BI Measures, berechnete Spalten und berechnete Tabellen baut. Anders als Excel-Formeln wertet DAX gegen den Filterkontext aus. Dieselbe Formel liefert also je nach aktiven Slicern und Visuals ein anderes Ergebnis. Dieser Leitfaden behandelt die Konzepte, auf denen jede DAX-Formel aufbaut, in der Reihenfolge, in der Sie sie brauchen: Kontext, CALCULATE, Variablen, Filterfunktionen und die Spezialthemen, zu denen es jeweils einen eigenen Beitrag gibt.
Was DAX ist
DAX ist eine Formelsprache für tabellarische Datenmodelle. Sie kommt in Measures, berechneten Spalten und berechneten Tabellen zum Einsatz. Anders als Excel ist sie für Tabellen gemacht, die miteinander in Beziehung stehen. Eine Formel wird in einem Kontext ausgewertet, der davon abhängt, wo sie steht und was den Report darum herum filtert. Ein einfaches Measure hat diese Form:
Measure Name = FUNCTION(Table[Column])Ein Beispiel:
Total Sales = SUM(Sales[Revenue])Fortgeschrittene Formeln kombinieren CALCULATE, FILTER und Iterator-Funktionen wie SUMX. Mit Variablen (VAR) bleiben lange Formeln lesbar und leichter zu debuggen.
Measures vs. berechnete Spalten
Measures rechnen dynamisch, abhängig von den Filtern, die in einem Visual aktiv sind. Berechnete Spalten rechnen einmal pro Zeile beim Aktualisieren und reagieren nicht auf Slicer.
Total Sales = SUM(Sales[Revenue]) -- measure: recalculates per filter context
Profit = Sales[Revenue] - Sales[Cost] -- calculated column: fixed per rowNutzen Sie ein Measure für Summen, Durchschnitte, KPIs und alles, was sich mit der Interaktion des Nutzers ändern soll. Nutzen Sie eine berechnete Spalte für Kategorien, Flags, Segmentierung und Beziehungsschlüssel, also für Werte, die pro Zeile fest sind. Bevorzugen Sie Measures, wo beides ginge: Berechnete Spalten belegen Speicher, Measures nicht. Der Beitrag Measures vs. berechnete Spalten vergleicht beide ausführlich.
Zeilenkontext vs. Filterkontext
Zeilenkontext heißt, DAX wertet jeweils eine Zeile aus. Das ist der Standard in berechneten Spalten und in Iterator-Funktionen wie SUMX. Filterkontext heißt, DAX wertet eine gefilterte Teilmenge der Daten aus. Das ist der Standard in Measures und Visuals. CALCULATE wandelt Zeilenkontext in Filterkontext um. Deshalb löst ein hinzugefügtes CALCULATE so viele DAX-Probleme. Der Beitrag Zeilenkontext vs. Filterkontext erklärt das mit durchgerechneten Beispielen.
CALCULATE: die zentrale Funktion in DAX
CALCULATE verändert den Filterkontext. Damit ist sie die Funktion, auf der fast jedes fortgeschrittene DAX-Muster aufbaut.
Sales in USA = CALCULATE([Total Sales], Customers[Country] = "USA")Das Measure berücksichtigt dann nur Kunden aus den USA, egal was sonst das Visual filtert. CALCULATE kann einen Slicer überschreiben, einen Filter hinzufügen, einen Filter entfernen oder einen Filter bedingt anwenden. Die Funktion steckt hinter jeder Time-Intelligence-Funktion. Sie führt außerdem die Kontexttransition durch, also die Umwandlung von Zeilenkontext in Filterkontext. Deshalb brauchen berechnete Spalten und Iteratoren sie, um korrekt zu aggregieren. Unser Leitfaden zur Funktion CALCULATE erklärt sie von Grund auf.
SUM vs. SUMX
SUM addiert eine Spalte direkt:
Total Revenue = SUM(Sales[Revenue])SUMX ist ein Iterator. Die Funktion geht Zeile für Zeile durch und wertet pro Zeile einen Ausdruck aus, bevor sie addiert:
Total Profit = SUMX(Sales, Sales[Revenue] - Sales[Cost])Nutzen Sie SUM für eine direkte Spaltensumme. Nutzen Sie SUMX, wenn vor dem Addieren eine Berechnung pro Zeile nötig ist, etwa Preis mal Menge. Unser Leitfaden zu SUM vs. SUMX vergleicht beide im Detail.
IF und SWITCH
IF funktioniert wie in Excel:
Sales Category = IF([Total Sales] > 100000, "High Sales", "Low Sales")Verschachtelte IF-Anweisungen werden ab zwei oder drei Bedingungen schwer lesbar. SWITCH(TRUE(), ...) behandelt mehrere Bedingungen übersichtlicher:
Sales Tier =
SWITCH(
TRUE(),
[Total Sales] > 1000000, "Platinum",
[Total Sales] > 500000, "Gold",
[Total Sales] > 100000, "Silver",
"Bronze"
)Unser Leitfaden zu mehreren IF-Bedingungen mit SWITCH behandelt dieses Muster ausführlicher.
DAX-Variablen (VAR)
Variablen speichern ein Zwischenergebnis einmal, statt es zu wiederholen:
Profit Margin =
VAR Revenue = [Total Sales]
VAR Cost = [Total Cost]
RETURN
DIVIDE(Revenue - Cost, Revenue)Nutzen Sie VAR, sobald ein Measure mehr als einen Rechenschritt hat, sobald Sie denselben Teilausdruck wiederholen oder sobald Sie mehrere CALCULATE-Aufrufe kombinieren. Das verbessert die Lesbarkeit und erleichtert das Debuggen. Unser Leitfaden zu DAX-Variablen zeigt das ganze Muster.
ALL vs. ALLSELECTED
ALL() entfernt Filter komplett:
Total Sales All Regions = CALCULATE([Total Sales], ALL(Customers[Region]))ALLSELECTED() entfernt die eigene Aufgliederung des Visuals, behält aber die Auswahl, die der Nutzer in einem Slicer getroffen hat. Deshalb ist es die übliche Wahl für Prozent-vom-Gesamt-Berechnungen:
Sales % of Selected =
DIVIDE([Total Sales], CALCULATE([Total Sales], ALLSELECTED(Customers[Region])))Unser Leitfaden zu ALL vs. ALLSELECTED zeigt, wann Sie welche Funktion nutzen.
Time Intelligence
Time-Intelligence-Funktionen berechnen ein Measure über einen bestimmten Zeitraum, etwa seit Jahresbeginn oder für dieselbe Periode ein Jahr zuvor. Sie setzen eine saubere Datumstabelle voraus: eindeutige Daten, keine Lücken, als Datumstabelle markiert und mit der Faktentabelle verknüpft.
Sales YTD = TOTALYTD([Total Sales], DateTable[Date])
Sales Previous Year = CALCULATE([Total Sales], SAMEPERIODLASTYEAR(DateTable[Date]))Unser Leitfaden zu Time Intelligence behandelt YTD, MTD, rollierende Summen und Vorjahresvergleiche mit allen Funktionen.
Filterfunktionen: REMOVEFILTERS, VALUES, FILTER
Neben CALCULATE kommen drei Filterfunktionen ständig vor:
Sales Overall = CALCULATE([Total Sales], REMOVEFILTERS(Customers))
Selected Regions = VALUES(Customers[Region])
High Value Customers = FILTER(Customers, Customers[LifetimeValue] > 50000)REMOVEFILTERS entfernt Filter von einer Tabelle oder Spalte. VALUES liefert die eindeutigen Werte im aktuellen Filterkontext und hilft in bedingter Logik. FILTER baut eine gefilterte Tabelle. Meist steht sie in CALCULATE, für Bedingungen, die ein einfaches Filterargument nicht ausdrücken kann.
Aggregations- und Iterator-Funktionen
Die am häufigsten genutzten Aggregationsfunktionen sind SUM, AVERAGE, MIN, MAX, COUNT und DISTINCTCOUNT. Nutzen Sie DIVIDE statt des Operators /. Bei einem Nenner von null liefert die Funktion einen leeren Wert statt eines Fehlers:
Avg Order Value = DIVIDE([Total Sales], [Total Orders])Iterator-Funktionen (SUMX, AVERAGEX, COUNTX, MINX, MAXX) werten einen Ausdruck Zeile für Zeile aus, bevor sie aggregieren:
Avg Profit Per Transaction = AVERAGEX(Sales, Sales[Revenue] - Sales[Cost])Rangfolgen mit RANKX
Customer Rank = RANKX(ALL(Customers[CustomerName]), [Total Sales], , DESC)RANKX vergibt einen Rang anhand eines Measures und rechnet neu, wenn sich die Filter ändern. Die Funktion steckt hinter Top-N-Listen für Kunden oder Produkte. Unser RANKX-Leitfaden behandelt Syntax, den Umgang mit Gleichständen und ALL vs. ALLSELECTED speziell für Rangfolgen.
Textfunktionen
DAX bietet Textfunktionen wie LEFT, RIGHT, MID, SEARCH und CONTAINSSTRING:
Is Gmail = IF(CONTAINSSTRING(Customers[Email], "@gmail.com"), "Yes", "No")DAX debuggen
Fehlerhaftes DAX wirft nicht immer einen Fehler. Oft liefert es einfach unauffällig die falsche Zahl. Zerlegen Sie ein Measure in VAR-Schritte, damit sich jedes Teilstück einzeln prüfen lässt. Testen Sie an einer kleinen Tabelle, deren Ergebnis Sie von Hand nachrechnen können. Nutzen Sie DAX Studio, um zu sehen, was eine Abfrage tatsächlich scannt.
Performance-Praxis
Bevorzugen Sie Measures gegenüber berechneten Spalten, wo beides ginge.
Vermeiden Sie
FILTERüber große Tabellen, wenn ein einfacheres Filterargument genügt.Vermeiden Sie Iterator-Funktionen, wo eine direkte Aggregation wie
SUMdasselbe leistet.Vermeiden Sie tief verschachtelte
CALCULATE-Aufrufe. Teilen Sie sie stattdessen inVAR-Schritte auf.Halten Sie die Beziehungen in einem Sternschema. Ein sauberes Modell ergibt einfacheres, schnelleres DAX.
Ein schnelles Modell zählt meist mehr als eine clevere Formel. Unser Leitfaden zur DAX-Performance-Optimierung zeigt, wie Sie Measures abstimmen, wenn das Modell selbst in Ordnung ist.
Häufige Fehler
Berechnete Spalten für Dinge, die ein Measure erledigen würde. Das bläht das Modell auf.
Ein Measure schreiben, ohne zu verstehen, in welchem Kontext es läuft.
Time Intelligence ohne saubere Datumstabelle bauen.
SUMXnutzen, wo ein einfachesSUMdasselbe leistet.ALLnutzen und dabei versehentlich einen Slicer aushebeln, der weiter gelten sollte.Eine Summe nicht gegen die Detailzeilen darunter prüfen.
Eine Lernreihenfolge, die funktioniert
Measure-Grundlagen:
SUM,COUNT,DIVIDEZeilenkontext vs. Filterkontext
CALCULATEIteratoren:
SUMX,AVERAGEXVariablen:
VARFiltermodifikatoren:
ALL,REMOVEFILTERSALLSELECTEDund Prozent-vom-Gesamt-MusterTime Intelligence
Rangfolgen und weitere Geschäftsmuster
Jeder Schritt baut auf dem vorigen auf: Der Kontext erklärt, warum CALCULATE wichtig ist. CALCULATE erklärt, warum Filtermodifikatoren und Time Intelligence so funktionieren, wie sie funktionieren.
Wo das bei CaseWhen eine Rolle spielt
Bei CaseWhen wenden wir dieselben Prinzipien an, wenn wir DAX für die Reporting-Modelle unserer Kunden bauen. Jeder verlinkte Leitfaden oben geht tiefer in sein Thema als diese Übersicht.
FAQs
Was ist DAX in Power BI?
DAX (Data Analysis Expressions) ist die Formelsprache, mit der Power BI Measures, berechnete Spalten und berechnete Tabellen baut.
Ist DAX schwerer als Excel-Formeln?
DAX hängt vom Filterkontext und von Tabellenbeziehungen ab, anders als Excel-Formeln. Excel wertet eine Formel isoliert aus, nicht gegen ein Datenmodell.
Wofür wird CALCULATE genutzt?
CALCULATE ändert den Filterkontext, in dem ein Measure läuft. Die Funktion steckt dahinter, wenn Sie Slicer überschreiben, bedingte Filter anwenden und jedes Time-Intelligence-Measure bauen.
Warum funktioniert Time Intelligence manchmal nicht?
Meist fehlt die Datumstabelle, sie ist nicht als Datumstabelle markiert oder nicht korrekt mit der Faktentabelle verknüpft. Die vollständige Checkliste steht im Leitfaden zu Time Intelligence.
Wann nutze ich ALLSELECTED statt ALL?
Nutzen Sie ALLSELECTED, wenn eine Summe die Slicer-Auswahl des Nutzers berücksichtigen, die eigene Zeilen- oder Spaltenaufgliederung des Visuals aber ignorieren soll, etwa bei einer Prozent-vom-Gesamt-Spalte in einer Matrix.
Quellen
DAX overview - Microsoft Learn
Context in DAX formulas - Microsoft Learn
DAX (Data Analysis Expressions) ist die Formelsprache, mit der Power BI Measures, berechnete Spalten und berechnete Tabellen baut. Anders als Excel-Formeln wertet DAX gegen den Filterkontext aus. Dieselbe Formel liefert also je nach aktiven Slicern und Visuals ein anderes Ergebnis. Dieser Leitfaden behandelt die Konzepte, auf denen jede DAX-Formel aufbaut, in der Reihenfolge, in der Sie sie brauchen: Kontext, CALCULATE, Variablen, Filterfunktionen und die Spezialthemen, zu denen es jeweils einen eigenen Beitrag gibt.
Was DAX ist
DAX ist eine Formelsprache für tabellarische Datenmodelle. Sie kommt in Measures, berechneten Spalten und berechneten Tabellen zum Einsatz. Anders als Excel ist sie für Tabellen gemacht, die miteinander in Beziehung stehen. Eine Formel wird in einem Kontext ausgewertet, der davon abhängt, wo sie steht und was den Report darum herum filtert. Ein einfaches Measure hat diese Form:
Measure Name = FUNCTION(Table[Column])Ein Beispiel:
Total Sales = SUM(Sales[Revenue])Fortgeschrittene Formeln kombinieren CALCULATE, FILTER und Iterator-Funktionen wie SUMX. Mit Variablen (VAR) bleiben lange Formeln lesbar und leichter zu debuggen.
Measures vs. berechnete Spalten
Measures rechnen dynamisch, abhängig von den Filtern, die in einem Visual aktiv sind. Berechnete Spalten rechnen einmal pro Zeile beim Aktualisieren und reagieren nicht auf Slicer.
Total Sales = SUM(Sales[Revenue]) -- measure: recalculates per filter context
Profit = Sales[Revenue] - Sales[Cost] -- calculated column: fixed per rowNutzen Sie ein Measure für Summen, Durchschnitte, KPIs und alles, was sich mit der Interaktion des Nutzers ändern soll. Nutzen Sie eine berechnete Spalte für Kategorien, Flags, Segmentierung und Beziehungsschlüssel, also für Werte, die pro Zeile fest sind. Bevorzugen Sie Measures, wo beides ginge: Berechnete Spalten belegen Speicher, Measures nicht. Der Beitrag Measures vs. berechnete Spalten vergleicht beide ausführlich.
Zeilenkontext vs. Filterkontext
Zeilenkontext heißt, DAX wertet jeweils eine Zeile aus. Das ist der Standard in berechneten Spalten und in Iterator-Funktionen wie SUMX. Filterkontext heißt, DAX wertet eine gefilterte Teilmenge der Daten aus. Das ist der Standard in Measures und Visuals. CALCULATE wandelt Zeilenkontext in Filterkontext um. Deshalb löst ein hinzugefügtes CALCULATE so viele DAX-Probleme. Der Beitrag Zeilenkontext vs. Filterkontext erklärt das mit durchgerechneten Beispielen.
CALCULATE: die zentrale Funktion in DAX
CALCULATE verändert den Filterkontext. Damit ist sie die Funktion, auf der fast jedes fortgeschrittene DAX-Muster aufbaut.
Sales in USA = CALCULATE([Total Sales], Customers[Country] = "USA")Das Measure berücksichtigt dann nur Kunden aus den USA, egal was sonst das Visual filtert. CALCULATE kann einen Slicer überschreiben, einen Filter hinzufügen, einen Filter entfernen oder einen Filter bedingt anwenden. Die Funktion steckt hinter jeder Time-Intelligence-Funktion. Sie führt außerdem die Kontexttransition durch, also die Umwandlung von Zeilenkontext in Filterkontext. Deshalb brauchen berechnete Spalten und Iteratoren sie, um korrekt zu aggregieren. Unser Leitfaden zur Funktion CALCULATE erklärt sie von Grund auf.
SUM vs. SUMX
SUM addiert eine Spalte direkt:
Total Revenue = SUM(Sales[Revenue])SUMX ist ein Iterator. Die Funktion geht Zeile für Zeile durch und wertet pro Zeile einen Ausdruck aus, bevor sie addiert:
Total Profit = SUMX(Sales, Sales[Revenue] - Sales[Cost])Nutzen Sie SUM für eine direkte Spaltensumme. Nutzen Sie SUMX, wenn vor dem Addieren eine Berechnung pro Zeile nötig ist, etwa Preis mal Menge. Unser Leitfaden zu SUM vs. SUMX vergleicht beide im Detail.
IF und SWITCH
IF funktioniert wie in Excel:
Sales Category = IF([Total Sales] > 100000, "High Sales", "Low Sales")Verschachtelte IF-Anweisungen werden ab zwei oder drei Bedingungen schwer lesbar. SWITCH(TRUE(), ...) behandelt mehrere Bedingungen übersichtlicher:
Sales Tier =
SWITCH(
TRUE(),
[Total Sales] > 1000000, "Platinum",
[Total Sales] > 500000, "Gold",
[Total Sales] > 100000, "Silver",
"Bronze"
)Unser Leitfaden zu mehreren IF-Bedingungen mit SWITCH behandelt dieses Muster ausführlicher.
DAX-Variablen (VAR)
Variablen speichern ein Zwischenergebnis einmal, statt es zu wiederholen:
Profit Margin =
VAR Revenue = [Total Sales]
VAR Cost = [Total Cost]
RETURN
DIVIDE(Revenue - Cost, Revenue)Nutzen Sie VAR, sobald ein Measure mehr als einen Rechenschritt hat, sobald Sie denselben Teilausdruck wiederholen oder sobald Sie mehrere CALCULATE-Aufrufe kombinieren. Das verbessert die Lesbarkeit und erleichtert das Debuggen. Unser Leitfaden zu DAX-Variablen zeigt das ganze Muster.
ALL vs. ALLSELECTED
ALL() entfernt Filter komplett:
Total Sales All Regions = CALCULATE([Total Sales], ALL(Customers[Region]))ALLSELECTED() entfernt die eigene Aufgliederung des Visuals, behält aber die Auswahl, die der Nutzer in einem Slicer getroffen hat. Deshalb ist es die übliche Wahl für Prozent-vom-Gesamt-Berechnungen:
Sales % of Selected =
DIVIDE([Total Sales], CALCULATE([Total Sales], ALLSELECTED(Customers[Region])))Unser Leitfaden zu ALL vs. ALLSELECTED zeigt, wann Sie welche Funktion nutzen.
Time Intelligence
Time-Intelligence-Funktionen berechnen ein Measure über einen bestimmten Zeitraum, etwa seit Jahresbeginn oder für dieselbe Periode ein Jahr zuvor. Sie setzen eine saubere Datumstabelle voraus: eindeutige Daten, keine Lücken, als Datumstabelle markiert und mit der Faktentabelle verknüpft.
Sales YTD = TOTALYTD([Total Sales], DateTable[Date])
Sales Previous Year = CALCULATE([Total Sales], SAMEPERIODLASTYEAR(DateTable[Date]))Unser Leitfaden zu Time Intelligence behandelt YTD, MTD, rollierende Summen und Vorjahresvergleiche mit allen Funktionen.
Filterfunktionen: REMOVEFILTERS, VALUES, FILTER
Neben CALCULATE kommen drei Filterfunktionen ständig vor:
Sales Overall = CALCULATE([Total Sales], REMOVEFILTERS(Customers))
Selected Regions = VALUES(Customers[Region])
High Value Customers = FILTER(Customers, Customers[LifetimeValue] > 50000)REMOVEFILTERS entfernt Filter von einer Tabelle oder Spalte. VALUES liefert die eindeutigen Werte im aktuellen Filterkontext und hilft in bedingter Logik. FILTER baut eine gefilterte Tabelle. Meist steht sie in CALCULATE, für Bedingungen, die ein einfaches Filterargument nicht ausdrücken kann.
Aggregations- und Iterator-Funktionen
Die am häufigsten genutzten Aggregationsfunktionen sind SUM, AVERAGE, MIN, MAX, COUNT und DISTINCTCOUNT. Nutzen Sie DIVIDE statt des Operators /. Bei einem Nenner von null liefert die Funktion einen leeren Wert statt eines Fehlers:
Avg Order Value = DIVIDE([Total Sales], [Total Orders])Iterator-Funktionen (SUMX, AVERAGEX, COUNTX, MINX, MAXX) werten einen Ausdruck Zeile für Zeile aus, bevor sie aggregieren:
Avg Profit Per Transaction = AVERAGEX(Sales, Sales[Revenue] - Sales[Cost])Rangfolgen mit RANKX
Customer Rank = RANKX(ALL(Customers[CustomerName]), [Total Sales], , DESC)RANKX vergibt einen Rang anhand eines Measures und rechnet neu, wenn sich die Filter ändern. Die Funktion steckt hinter Top-N-Listen für Kunden oder Produkte. Unser RANKX-Leitfaden behandelt Syntax, den Umgang mit Gleichständen und ALL vs. ALLSELECTED speziell für Rangfolgen.
Textfunktionen
DAX bietet Textfunktionen wie LEFT, RIGHT, MID, SEARCH und CONTAINSSTRING:
Is Gmail = IF(CONTAINSSTRING(Customers[Email], "@gmail.com"), "Yes", "No")DAX debuggen
Fehlerhaftes DAX wirft nicht immer einen Fehler. Oft liefert es einfach unauffällig die falsche Zahl. Zerlegen Sie ein Measure in VAR-Schritte, damit sich jedes Teilstück einzeln prüfen lässt. Testen Sie an einer kleinen Tabelle, deren Ergebnis Sie von Hand nachrechnen können. Nutzen Sie DAX Studio, um zu sehen, was eine Abfrage tatsächlich scannt.
Performance-Praxis
Bevorzugen Sie Measures gegenüber berechneten Spalten, wo beides ginge.
Vermeiden Sie
FILTERüber große Tabellen, wenn ein einfacheres Filterargument genügt.Vermeiden Sie Iterator-Funktionen, wo eine direkte Aggregation wie
SUMdasselbe leistet.Vermeiden Sie tief verschachtelte
CALCULATE-Aufrufe. Teilen Sie sie stattdessen inVAR-Schritte auf.Halten Sie die Beziehungen in einem Sternschema. Ein sauberes Modell ergibt einfacheres, schnelleres DAX.
Ein schnelles Modell zählt meist mehr als eine clevere Formel. Unser Leitfaden zur DAX-Performance-Optimierung zeigt, wie Sie Measures abstimmen, wenn das Modell selbst in Ordnung ist.
Häufige Fehler
Berechnete Spalten für Dinge, die ein Measure erledigen würde. Das bläht das Modell auf.
Ein Measure schreiben, ohne zu verstehen, in welchem Kontext es läuft.
Time Intelligence ohne saubere Datumstabelle bauen.
SUMXnutzen, wo ein einfachesSUMdasselbe leistet.ALLnutzen und dabei versehentlich einen Slicer aushebeln, der weiter gelten sollte.Eine Summe nicht gegen die Detailzeilen darunter prüfen.
Eine Lernreihenfolge, die funktioniert
Measure-Grundlagen:
SUM,COUNT,DIVIDEZeilenkontext vs. Filterkontext
CALCULATEIteratoren:
SUMX,AVERAGEXVariablen:
VARFiltermodifikatoren:
ALL,REMOVEFILTERSALLSELECTEDund Prozent-vom-Gesamt-MusterTime Intelligence
Rangfolgen und weitere Geschäftsmuster
Jeder Schritt baut auf dem vorigen auf: Der Kontext erklärt, warum CALCULATE wichtig ist. CALCULATE erklärt, warum Filtermodifikatoren und Time Intelligence so funktionieren, wie sie funktionieren.
Wo das bei CaseWhen eine Rolle spielt
Bei CaseWhen wenden wir dieselben Prinzipien an, wenn wir DAX für die Reporting-Modelle unserer Kunden bauen. Jeder verlinkte Leitfaden oben geht tiefer in sein Thema als diese Übersicht.
FAQs
Was ist DAX in Power BI?
DAX (Data Analysis Expressions) ist die Formelsprache, mit der Power BI Measures, berechnete Spalten und berechnete Tabellen baut.
Ist DAX schwerer als Excel-Formeln?
DAX hängt vom Filterkontext und von Tabellenbeziehungen ab, anders als Excel-Formeln. Excel wertet eine Formel isoliert aus, nicht gegen ein Datenmodell.
Wofür wird CALCULATE genutzt?
CALCULATE ändert den Filterkontext, in dem ein Measure läuft. Die Funktion steckt dahinter, wenn Sie Slicer überschreiben, bedingte Filter anwenden und jedes Time-Intelligence-Measure bauen.
Warum funktioniert Time Intelligence manchmal nicht?
Meist fehlt die Datumstabelle, sie ist nicht als Datumstabelle markiert oder nicht korrekt mit der Faktentabelle verknüpft. Die vollständige Checkliste steht im Leitfaden zu Time Intelligence.
Wann nutze ich ALLSELECTED statt ALL?
Nutzen Sie ALLSELECTED, wenn eine Summe die Slicer-Auswahl des Nutzers berücksichtigen, die eigene Zeilen- oder Spaltenaufgliederung des Visuals aber ignorieren soll, etwa bei einer Prozent-vom-Gesamt-Spalte in einer Matrix.
Quellen
DAX overview - Microsoft Learn
Context in DAX formulas - Microsoft Learn
Mehr zu diesem Thema.
Zeigen Sie uns Ihren Report, dem niemand traut.
1 · Ein Gespräch von 30 Minuten.
2 · Wir sehen uns gemeinsam Ihre aktuellen Reports an.
3 · Wir sagen Ihnen, was wir tun würden.
Zeigen Sie uns Ihren Report, dem niemand traut.
1 · Ein Gespräch von 30 Minuten.
2 · Wir sehen uns gemeinsam Ihre aktuellen Reports an.
3 · Wir sagen Ihnen, was wir tun würden.
Zeigen Sie uns Ihren Report, dem niemand traut.
1 · Ein Gespräch von 30 Minuten.
2 · Wir sehen uns gemeinsam Ihre aktuellen Reports an.
3 · Wir sagen Ihnen, was wir tun würden.
CaseWhen ist eine BI-Beratung aus Berlin. Wir bauen Reporting, dem die Geschäftsführung vertraut, auf dem Microsoft-Stack: Power BI, Fabric und Azure.
Berlin, Deutschland
Kostenlose Tools
CaseWhen ist eine BI-Beratung aus Berlin. Wir bauen Reporting, dem die Geschäftsführung vertraut, auf dem Microsoft-Stack: Power BI, Fabric und Azure.
Berlin, Deutschland
Kostenlose Tools
CaseWhen ist eine BI-Beratung aus Berlin. Wir bauen Reporting, dem die Geschäftsführung vertraut, auf dem Microsoft-Stack: Power BI, Fabric und Azure.
Berlin, Deutschland
