2017-12-16 8 views
0

Ich wollte den Median des Gesamtumsatzes für jede Kategorie berechnen.Unterschiedliches Verhalten von DAX-Messungen in Abhängigkeit von der Verschachtelung

Wenn ich die folgenden beiden Maßnahmen erstellen, es funktioniert perfekt:

SoS := SUM(Table1[Sales]) 
Median Category Sales := 
     MEDIANX(
       CALCULATETABLE(VALUES(Table1[Category]), ALL(Table1)), 
       [SoS] 
      ) 

Wenn ich jedoch die Maßnahmen nicht Nest tun der Median nicht berechnet wird, und es gibt nur die Summe.

Median without measure := 
     MEDIANX(
       CALCULATETABLE(VALUES(Table1[Category]), ALL(Table1)), 
       SUM(Table1[Sales]) 
      ) 

Siehe Ergebnisse unter:

DAX Measures Nesting

Warum dies geschieht? Ich dachte, die beiden Ansätze wären genau gleich.

Antwort

1

Eigentlich ist der erste Ansatz entspricht dem folgenden:

Median Category Sales := 
MEDIANX(
    CALCULATETABLE(VALUES(Table1[Category]), ALL(Table1)), 
    CALCULATE(SUM(Table1[Sales])) 
    ) 

Die SoS Maßnahme implizit wickelt seine Formel in einem berechnen, die einen Kontext Übergang durch VALUES vorgesehen für jede Kategorie führt, wodurch die korrekte Berechnung der sume von Umsatz und damit der Median.

+0

Natürlich !!! Deshalb wickle ich die Aggregationsfunktionen immer um cache um, wenn 'TOPN' verwendet wird. Danke! –

Verwandte Themen