TOP

DAX-Lektion 2. CALCULATE-Funktion

Beschreibung

Die erste Funktion, die mit dem Lernen von DAX beginnt, ist CALCULATE. Diese Funktion hat kein genaues Gegenstück in Excel, ist aber mit Funktionen vergleichbar SUMIFS Und COUNTIFS . Kurz gesagt, diese Funktion wendet Filter auf andere Berechnungsfunktionen an, sodass wir nur die Daten auswählen und in Berechnungen einbeziehen können, die wir benötigen.

Syntax der Funktion CALCULATE()

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

< statistischer Ausdruck >

Statistischer Ausdruck sollte uns das Ergebnis der Berechnung zurückgeben (einen Wert, keine Tabelle). Aus diesem Grund werden in diesem Zusammenhang häufig statistische Funktionen dieses Typs verwendet SUM , MINDEST , MAX , GEGENWÄRTS usw.

  1. SUM([ Spaltenname ])
  2. SUM([ NameSpalten1 ]) / MAX([ NameColumns2 ])
  3. Name eines anderen Berechnungsfeldes (Maßzahl)

< Filter1 >, < Filter2 >, ...

Filter definiert den Umfang der zu bearbeitenden Daten. Hier werden Bedingungen für die Auswahl von Werten angegeben.

  1. [ Spaltenname ] = Auto
  2. [ Spaltenname ] >= 6
  3. ALL( 'Tabellenname' ) oder ALL( 'Tabellenname' [ Spaltenname ] )
  4. FILTER ( 'Tabellenname' , 'Tabellenname' [ Spaltenname ] = " Grün ")

Angenommen, wir haben eine solche Tabelle mit dem Namen Demo und geladen PowerPivot .

Lassen Sie uns darauf basierend eine Übersichtstabelle erstellen und die Anzahl der Datensätze für jedes Produkt zählen.

Jetzt erstellen wir ein neues Berechnungsfeld (Measure) Count_All_Product in unserer Pivot-Tabelle, die die Gesamtzahl der Datensätze für alle Zeilen anzeigt.

Wie haben wir die Zahlen im Berechnungsfeld Count_All_Product erhalten? 16 ? Die Erklärung dafür ist, dass wir für dieses Feld mithilfe der Funktion alle Filter entfernt haben, die in der Pivot-Tabelle angewendet wurden (jede Zeile in der Pivot-Tabelle ist ein separater Filter). ALL() . Das ist mit anderen Worten eine Funktion ALL (Demo) gibt den Befehl, alle Filter für das berechnete Feld Count_All_Product zu entfernen, die auf die Tabelle angewendet werden Demo .

Fügen wir ein weiteres Feld hinzu (City) in Zeilen, um die Verkäufe jedes Produkts nach Stadt anzuzeigen:

Wir sehen, dass die Zahlen im Feld sind Count of Rows ändern, jedoch nicht im Berechnungsfeld Count_All_Product. Das ist richtig, denn beim letzten haben wir alle Filter in der Formel entfernt. Nehmen wir nun einige kleinere Änderungen an unserer Formel vor und sehen uns das Ergebnis an.

=CALCULATE(COUNTROWS(Demo);ALL(Demo[Product]))

Wir haben das Argument durch Ersetzen in die Funktion ALL() geändert Demo An Demo[Product] . Jetzt werden die Filter nicht für die gesamte Tabelle entfernt Demo , aber nur für seine Spalte Demo[Product] .

So sehen wir, was auf dem Feld ist Count of Rows Filter sind in Kraft Product Und City und nur ein Filter für das berechnete Feld Count_All_Product City .