top of page
9d657493-a904-48e4-b46b-e08acb544ddf.png

POST

DAX-Abfragen in Power BI meistern: Struktur, Logik und Best Practices

  • Autorenbild: Admin
    Admin
  • vor 16 Stunden
  • 5 Min. Lesezeit

Einführung

Haben Sie sich jemals gefragt, was im Hintergrund passiert, wenn Sie ein Visual in Power BI ziehen? Das sind DAX-Abfragen in Aktion.

Während die meisten Benutzer DAX-Formeln zur Berechnung von Kennzahlen oder Spalten verwenden, gehen DAX-Abfragen noch einen Schritt weiter: Sie ermöglichen die direkte Abfrage des Modells, das Testen von Logik und das Debuggen von Berechnungen. In diesem Beitrag erklären wir, was DAX-Abfragen sind, wie sie funktionieren, ihre Struktur, Beispiele, Fallstricke und Best Practices – und geben Ihnen einige Profi-Tricks, mit denen Sie Ihre Power BI-Kenntnisse erweitern können.


Was sind DAX-Abfragen?

In Power BI erfüllt DAX (Data Analysis Expressions) zwei Hauptzwecke:

  • DAX-Formeln erstellen Logik innerhalb Ihres Modells (Kennzahlen, Spalten, berechnete Tabellen).

  • DAX-Abfragen rufen Daten aus dem Modell ab oder untersuchen diese – ähnlich wie SQL-SELECT-Anweisungen.

Jede von Ihnen erstellte Visualisierung führt automatisch eine DAX-Abfrage im Hintergrund aus. Sie können diese Abfragen mit dem Performance Analyzer oder DAX Studio anzeigen.

Seit Ende 2023 bietet Power BI Desktop die DAX-Abfrageansicht . Mit dieser Funktion können Sie DAX-Abfragen direkt in Ihrem Bericht schreiben, ausführen und testen . Ideal zum Debuggen und zur Leistungsoptimierung.


Grundstruktur einer DAX-Abfrage

Eine DAX-Abfrage enthält typischerweise zwei Hauptabschnitte:

  1. DEFINE — optionalDefiniert temporäre (abfragebezogene) Kennzahlen oder Variablen.

  2. EVALUATE — erforderlich Führt einen DAX-Ausdruck aus, der eine Tabelle zurückgibt.

Sie können auch optionale Teile wie ORDER BY , START AT oder mehrere EVALUATE- Anweisungen anhängen.

DAX-Abfrage-Anatomiediagramm: DEFINE-, EVALUATE- und ORDER BY-Schritte in farbigen Kästchen. Enthält Beispielcode für die Berechnung von Rabatten.
Anatomie einer DAX-Abfrage: Ein Überblick über die optionalen und erforderlichen Komponenten einer DAX-Abfrage, einschließlich DEFINE zur Berechnung von Rabatten, EVALUATE zur Zusammenfassung nach Produktkategorie und optionalem ORDER BY in aufsteigender Reihenfolge.

Beispiel 1: Die einfachste Abfrage

EVALUATE
    'Sales'

Gibt die gesamte Verkaufstabelle aus Ihrem Modell zurück – ähnlich wie SELECT * FROM Sales.

Beispiel 2: Eine Kennzahl definieren und abfragen

DEFINE
    MEASURE Sales[DiscountedSales] = [Total Sales] * 0.9
EVALUATE
    SUMMARIZECOLUMNS (
        Product[Category],
        "Disc Sales", [DiscountedSales]
    )
  • DEFINE erzeugt eine temporäre Kennzahl DiscountedSales.

  • EVALUATE fasst die Daten nach Kategorien zusammen und gibt sie als Tabelle zurück.

Sie können diese temporäre Maßnahme mithilfe von CodeLens in der Abfrageansicht testen, anpassen und sogar in Ihr Modell übernehmen.

Beispiel 3: Ergebnisse sortieren

EVALUATE
    SUMMARIZECOLUMNS (
        'Date'[Year],
        "Total Sales", [Total Sales]
    )
ORDER BY
    'Date'[Year] ASC
🧠 Hinweis: Sortierregeln in Ihrem Modell (z. B. „Monatsname sortiert nach Monatsindex“) werden in DAX-Abfragen nicht automatisch angewendet. Sie müssen die Sortierreihenfolge explizit angeben.

Wie DAX-Abfragen funktionieren

Beim Erstellen von Visualisierungen wandelt Power BI Ihre Auswahlen, Filter und Kennzahlen automatisch in DAX-Abfragen um.

Tools wie DAX Studio und Query View ermöglichen die direkte Untersuchung dieser Abfragen. Sie können:

  • Debug-Maßnahmen unabhängig voneinander durchführen.

  • Testen Sie, wie sich Filter auf die Ergebnisse auswirken.

  • Optimieren Sie die Performance, bevor Sie Änderungen übernehmen.

Power BI begrenzt die Ausgabe jeder einzelnen Abfrage auf etwa 1 Million Werte oder 15 MB , um die Leistung im Rahmen zu halten.


Kernfunktionen für DAX-Abfragen

Funktion

Beschreibung

Typische Verwendung

ZUSAMMENFASSUNG (Spalten)

Gruppiert nach Spalten und berechnet Kennzahlen

Berichtstabellen, Aggregationen

ADDCOLUMNS()

Fügt einer Tabelle berechnete Spalten hinzu

Füge abgeleitete Werte zu den Ergebnissen hinzu.

FILTER()

Filtert Zeilen aus einer Tabelle

Bedingungen auf Zeilenebene

TOPN()

Beschränkt die Zeilenanzahl anhand einer Sortierspalte

„Top 10“-Anfragen

REIHE()

Erstellt eine einzeilige Tabelle

Gibt ein einzelnes skalares Ergebnis zurück

PROBE()

Zieht zufällige Stichproben aus Zeilen

Testen und Debuggen

Beispiel 4: Filter und Berechnungen kombinieren

DEFINE
    MEASURE Sales[NetSales] = SUM(Sales[Amount]) - SUM(Sales[Discount])
EVALUATE
    ADDCOLUMNS (
        FILTER (
            SUMMARIZECOLUMNS (
                'Date'[Year],
                'Product'[Category],
                "Net", [NetSales]
            ),
            [Net] > 100000
        ),
        "PerOrder", DIVIDE([NetSales], [Order Count])
    )
ORDER BY
    'Date'[Year], [PerOrder] DESC

Hier sind wir:

  1. Berechnen Sie eine benutzerdefinierte Nettoumsatzkennzahl.

  2. Kategorien mit geringer Leistung herausfiltern.

  3. Fügen Sie eine abgeleitete Spalte „PerOrder“ hinzu.

  4. Sortieren Sie das Ergebnis zur besseren Lesbarkeit.


Fallstricke und häufige Fehler

  1. Crossjoin-Explosionen: Wenn man vergisst, Kennzahlen oder Filter in SUMMARIZECOLUMNS einzubeziehen, kann dies zu riesigen Zwischentabellen und einem Leistungseinbruch führen.

  2. Annahmen zur Sortierung: Die Sortierung auf Modellebene wird nicht auf die Ergebnisse von DAX-Abfragen übertragen. Verwenden Sie immer ORDER BY.

  3. Power BI beschränkt die Ausgabegröße – große Abfragen können Ergebnisse stillschweigend abschneiden.

  4. Verwechslung von leeren Werten mit Nullwerten: Vermeiden Sie unnötige Ersetzungen von leeren Werten durch Nullwerte. Diese können die Filterlogik in der Visualisierung verfälschen.

  5. Aufwändige Fehlerbehandlung IFERROR() oder ISERROR() wertet zeilenweise aus – verwenden Sie sie sparsam.

  6. Logik nicht wiederholt berechnen. Variablen oder Kennzahlen wiederverwenden, um die doppelte Neuberechnung komplexer Logik zu vermeiden.

  7. Virtuelle Beziehungen nutzen TREATAS()- oder FILTER()-Verbindungen langsamer als physische Beziehungen. Verwenden Sie diese nur, wenn es unbedingt notwendig ist.

  8. Die Aussage „Es kommt darauf an“ sollte man ignorieren. Leistungsoptimierungen variieren je nach Datenform, -größe und -kardinalität. Führen Sie daher immer Benchmarks durch.


Bewährte Methoden zum Schreiben von DAX-Abfragen

💡 1. Nutzen Sie Variablen großzügig: Erfassen Sie Zwischenergebnisse mit VAR/RETURN – sauberer und schneller.

💡 2. Maßnahmen wiederverwendbar machen: Anstatt Logik zu duplizieren, verweisen Sie auf bestehende Maßnahmen.

💡 3. Filtern Sie die Reduce-Daten frühzeitig an der Quelle mit FILTER() oder KEEPFILTERS(), bevor Sie komplexe Aggregationen durchführen.

💡 4. Verwenden Sie eine explizite Sortierung: Fügen Sie immer eine ORDER BY-Klausel hinzu, um Klarheit und Konsistenz zu gewährleisten.

💡 5. Optimieren Sie die Lesbarkeit: Verwenden Sie klare Bezeichnungen für Kennzahlen und Aliase, damit Sie (oder Ihre Teamkollegen) Ihre Arbeit später verstehen können.

💡 6. Schrittweises Testen: Klein anfangen – Zwischenschritte ausführen, bevor komplexe Abfragen erstellt werden.

💡 7. Nutzen Sie DAX Studio & Query View: Beide Tools zeigen Leistungsmetriken und Abfragepläne an, um Ihnen bei der Identifizierung von Engpässen zu helfen.

💡 8. Kommentieren Sie Ihren Code: Verwenden Sie // oder /* … */ für Erklärungen – unerlässlich für kollaborative Modelle.

💡 9. Ergebnisse einschränken: Verwenden Sie TOPN() oder SAMPLE() für Vorschauen, anstatt ganze Tabellen abzurufen.

💡 10. Optimierte Abfragen speichern: Die Abfrageansicht ermöglicht es Ihnen jetzt, erfolgreiche abfragebezogene Maßnahmen direkt im Modell anzuwenden.


Profi-Tricks für fortgeschrittene Benutzer

1️⃣ Abfrage einer einzelnen Kennzahl

EVALUATE
    { [Total Sales] }

Gibt eine Zeile und eine Spalte aus – perfekt zum Debuggen einer Skalargröße.

2️⃣ Mehrere Ergebnisse in einer Abfrage

EVALUATE
    TOPN(5, 'Product', [Total Sales])
EVALUATE
    TOPN(5, 'Customer', [Total Sales])

Jeder EVALUATE-Block gibt eine eigene Ergebnistabelle in der Abfrageansicht zurück – ideal für vergleichende Prüfungen.

3️⃣ Parametrisierte Abfragen

Sie können Parameter dynamisch in Ihre Abfragen einfügen (über XMLA-Endpunkte oder Tabular Editor-Skripte), um interaktives Testen zu beschleunigen.

4️⃣ Stichprobendaten

EVALUATE
    SAMPLE (100, 'Sales', Sales[Amount], ASC)

Ideal zum Anzeigen einer Vorschau großer Datensätze, ohne auf das vollständige Laden der Abfrage warten zu müssen.

5️⃣ Leistung prüfen

Verwenden Sie DAX Studio → Server Timings oder Query Diagnostics , um die Ausführungszeit zu messen und rechenintensive Filter oder langsame Beziehungen zu identifizieren.


Zusammenfassung

Konzept

Wichtigste Erkenntnis

DAX-Abfragen vs. Formeln

Formeln bilden die Logik; Abfragen extrahieren oder testen sie.

Struktur

DEFINIEREN (optional) → AUSWERTEN (erforderlich) → optional ORDER BY.

Bewährte Verfahren

Frühzeitig filtern, Maßnahmen wiederverwenden, Code kommentieren und Ergebnisse einschränken.

Werkzeuge

DAX Studio, Abfrageansicht, Leistungsanalysator.

Fallstricke

Kreuzverbindungsexplosionen, Sortierannahmen, wiederholte Logik.

Profi-Tricks

Variablen, Stichproben, Multi-EVALUATE, Parametrisierung verwenden.

DAX-Abfragen sind das Labor von Power BI. Sie ermöglichen es Ihnen, Logik zu analysieren, zu testen und zu optimieren, bevor sie live geht. Ob Sie Kennzahlen validieren, Visualisierungen debuggen oder die Leistung feinabstimmen – die Beherrschung von DAX-Abfragen macht Sie zu einem deutlich selbstbewussteren Power BI-Entwickler.



Benötigen Sie ein Power BI DAX-Starterpaket mit einer Anleitung, den besten Funktionen und deren Anwendung in Power BI-Berichten? Mit nur wenigen Anpassungen für schnelle und effiziente Workflows? Dann schauen Sie es sich an.


DAX-Toolkit
€20.00
Jetzt kaufen


Kommentare

Mit 0 von 5 Sternen bewertet.
Noch keine Ratings

Rating hinzufügen
Offizielles Logo der Webseite

Transformieren Sie Ihre Daten mit unseren Datenanalysediensten! Von Excel bis Power BI mit Power Query im Hintergrund – bringen Sie Ihr Unternehmen voran!

  • Linkedin
  • Xing
  • RSS
  • 4844455

Kontaktieren Sie uns

Adresse:
83022 Rosenheim, Bayern

E-Mail:
info@excelized.de

Jetzt Abonnieren!

Bleiben Sie mit Tipps und Tutorials auf dem Laufenden!

© 2025 Von Excelized. | WEBSITE GESTALTET VON RS-TECH

bottom of page