Einführung

Abgeschlossen

Im folgenden Video erfahren Sie mehr über Iteratorfunktionen.

DAX (Data Analysis Expressions) beinhaltet eine Reihe von Funktionen, die als Iteratorfunktionen bezeichnet werden. Iteratorfunktionen durchlaufen alle Zeilen einer angegebenen Tabelle und werten für jede Zeile einen bestimmten Ausdruck aus. Sie bieten Ihnen Flexibilität und Kontrolle darüber, wie Daten in Ihren Modellberechnungen zusammengefasst werden.

Mittlerweile sind Sie mit einspaltigen Zusammenfassungsfunktionen wie SUM, COUNT, MIN, MAX und anderen vertraut. Jede dieser Funktionen verfügt über eine äquivalente Iteratorfunktion, die durch das Suffix „X“ gekennzeichnet wird, also z. B. SUMX, COUNTX, MINX, MAXX und andere. Außerdem gibt es spezialisierte Iteratorfunktionen, die Filter anwenden, Rangfolgen festlegen, semiadditive Berechnungen über einen Zeitverlauf ausführen und mehr.

Ein Merkmal aller Iteratorfunktionen ist, dass Sie eine Tabelle und einen Ausdruck übergeben müssen. Bei der Tabelle kann es sich um einen Verweis auf eine Modelltabelle oder einen Ausdruck handeln, der ein Tabellenobjekt zurückgibt. Der Ausdruck muss zu einem Skalarwert ausgewertet werden.

Einspaltige Zusammenfassungsfunktionen wie SUM sind Kurzformen dieser Funktionen. Intern wird die SUM-Funktion von Microsoft Power BI in SUMXkonvertiert. Daher werden die folgenden beiden Measuredefinitionen dasselbe Ergebnis mit derselben Leistung erzeugen.

Revenue = SUM(Sales[Sales Amount])
Revenue =
SUMX(
    Sales,
    Sales[Sales Amount]
)

Es ist wichtig zu verstehen, welche Bedeutung der Kontext bei Iteratorfunktionen hat. Da Iteratorfunktionen Tabellenzeilen durchlaufen, wird der Ausdruck für jede Zeile im Zeilenkontext ausgewertet, also ähnlich wie bei Formeln für berechnete Spalten. Die Tabelle wird im Filterkontext ausgewertet. Wenn Sie also das vorherige Beispiel für die Measuredefinition Revenue verwenden und ein Berichtsvisual nach dem Geschäftsjahr FY2020 gefiltert wird, enthält die Tabelle Sales die Zeilen mit Verkäufen in diesem Jahr. Der Filterkontext wird im entsprechenden Modul beschrieben.

Wichtig

Vermeiden Sie bei der Verwendung von Iteratorfunktionen große Tabellen (mit vielen Zeilen) für Ausdrücke, die viele DAX-Funktionen verwenden. Einige Funktionen, wie z. B. die DAX-Funktion SEARCH, die einen Textwert scannt und nach bestimmten Zeichen oder Text sucht, kann zu einer langsamen Ausführung führen. Außerdem kann die DAX-Funktion LOOKUPVALUE zu einem langsamen Abruf von Werten Zeile für Zeile führen. Verwenden Sie im zweiten Fall die DAX-Funktion RELATED, wann immer dies möglich ist.