DAX Funktion calculate

Welche Bedeutung hat die Funktion calculate?

DAX-Funktion CALCULATE – Das Herzstück leistungsstarker Auswertungen in Power BI

Wenn man mit Microsoft Power BI arbeitet, begegnet man früher oder später der DAX-Funktion CALCULATE(). Sie ist nicht nur eine der wichtigsten Funktionen in der DAX-Sprache, sondern auch eine der mächtigsten. In diesem Artikel erfährst du, was CALCULATE genau macht, wie sie funktioniert und wie du sie in der Praxis effektiv einsetzen kannst.

Was ist CALCULATE?

CALCULATE ist eine DAX-Funktion, die einen Ausdruck (z. B. eine Kennzahl) neu berechnet, indem sie Filterkontexte ändert oder hinzufügt. Damit ermöglicht sie es dir, Auswertungen gezielt zu steuern – zum Beispiel Umsätze nur für ein bestimmtes Jahr, eine Produktkategorie oder für bestimmte Bedingungen zu berechnen.

Die Syntax lautet:

dax

KopierenBearbeiten

CALCULATE(<Ausdruck>, <Filter1>, <Filter2>, ...)

Warum ist CALCULATE so wichtig?

CALCULATE ist die einzige Funktion in DAX, die Filterkontexte verändern kann. Das bedeutet: Während du mit einfachen Measures nur aggregieren kannst (z. B. Summe, Durchschnitt), erlaubt dir CALCULATE, diese Aggregationen unter bestimmten Bedingungen neu zu berechnen. Sie ist daher der Schlüssel für viele dynamische Berechnungen.

Ein einfaches Beispiel

Angenommen, du hast eine Tabelle Verkäufe mit folgenden Spalten:

Datum

Produkt

Kategorie

Menge

Umsatz

Du möchtest nun ein Measure definieren, das den Umsatz nur für die Kategorie "Software" berechnet – unabhängig davon, welche Kategorien im Bericht gerade gefiltert sind.

1. Standardmaß für Umsatz

dax

KopierenBearbeiten

Umsatz := SUM(Verkäufe[Umsatz])

2. Umsatz nur für "Software"

dax

KopierenBearbeiten

Umsatz Software := CALCULATE(    [Umsatz],    Verkäufe[Kategorie] = "Software" )

Dieses Measure überschreibt den aktuellen Filterkontext (z. B. durch einen Slicer oder eine Matrix) und wendet stattdessen den Filter Kategorie = "Software" an.

Was passiert technisch?

CALCULATE:

Evaluiert den Ausdruck (in unserem Fall [Umsatz])

Modifiziert den Filterkontext gemäß den angegebenen Bedingungen

Führt die Berechnung im neuen Kontext aus

Im Beispiel wird [Umsatz] also nur für die Zeilen berechnet, bei denen Kategorie = "Software" ist.

Beispiel mit Zeitintelligenz

CALCULATE ist auch essenziell für Zeitvergleiche wie YTD (Year-to-Date), Vorjahresvergleiche oder gleitende Durchschnitte.

Beispiel: Vorjahresumsatz

dax

KopierenBearbeiten

Umsatz Vorjahr := CALCULATE(    [Umsatz],    SAMEPERIODLASTYEAR(Datum[Datum]) )

Hier wird [Umsatz] für denselben Zeitraum im Vorjahr berechnet. SAMEPERIODLASTYEAR liefert einen Filter, den CALCULATE anwendet.

Mehrere Filterbedingungen

Du kannst auch mehrere Bedingungen kombinieren:

dax

KopierenBearbeiten

CALCULATE(    [Umsatz],    Verkäufe[Kategorie] = "Software",    Verkäufe[Region] = "Süd" )

In diesem Fall wird der Umsatz nur für Software in der Region „Süd“ berechnet.

TIPP: FILTER vs. direkter Vergleich

Du kannst Filter auch mit der FILTER-Funktion setzen, was mehr Flexibilität bietet:

dax

KopierenBearbeiten

CALCULATE(    [Umsatz],    FILTER(Verkäufe, Verkäufe[Umsatz] > 1000) )

Das ist nötig, wenn du Bedingungen verwendest, die nicht mit einem einfachen Gleichheitszeichen ausgedrückt werden können.

Best Practices

Nutze CALCULATE, wenn du Kontext ändern oder erweitern willst.

Setze einfache Filter direkt (Spalte = "Wert"), komplexe Bedingungen über FILTER().

Vermeide zu viele Filter auf einmal – das kann zu unübersichtlichem und ineffizientem Code führen.

Verwende sprechende Namen für Measures, z. B. Umsatz Nur Software, um die Logik für andere nachvollziehbar zu machen.

Fazit

Die DAX-Funktion CALCULATE ist das Zentrum vieler fortgeschrittener Auswertungen in Power BI. Sie erlaubt es dir, Zahlen nicht nur zu berechnen, sondern gezielt zu steuern, unter welchen Bedingungen diese Zahlen gelten sollen. Sobald du dich mit der Filterlogik von CALCULATE vertraut gemacht hast, wirst du deine Power BI-Modelle auf ein ganz neues Level heben können.

© 2025 - software consult peter vittinghoff

Wir benötigen Ihre Zustimmung zum Laden der Übersetzungen

Wir nutzen einen Drittanbieter-Service, um den Inhalt der Website zu übersetzen, der möglicherweise Daten über Ihre Aktivitäten sammelt. Bitte überprüfen Sie die Details in der Datenschutzerklärung und akzeptieren Sie den Dienst, um die Übersetzungen zu sehen.