2016-05-23 15 views
0

Ich habe eine Kennzahl, die eine prozentuale Verringerung der Schuldenwerte mit dem $ -Wert der Verkäufe im Vormonat multipliziert, um einen $ -Vorteil zu erhalten. Dies ist:Recursive DAX Kumulative Summe

Gross Benefit:= [Change in 0-30 %] * [Ent Prior Month Credit Sales] 

für jedes Geschäft Monat - kann der Brutto Nutzen berechnet werden (zB „1. Juli“.). Der Nettonutzen ist der Bruttonutzen für diesen Monat abzüglich der Summe der Nettonutzen für alle vorhergehenden Monate (also zähle ich nicht eine Leistung doppelt). Dies ist ein verwirrendes Konzept und Aspekt unseres Systems, wo wir eine Momentaufnahme des YTD benötigen. Es ist mit dem Ausgang dieses eine Tabelle wie bestimmt:

 | Jun 15 | Jul 15 | Aug 15 | Sep 15 | 
Gross | 0.7 | 0.7 | 0.4 | 0.2 | 
Net | 0.7 | 0.0 | (0.3) | (0.1) | 

Mein Code, um zu versuchen zu schaffen dies:

Net Benefit :=[Gross Benefit] 
- CALCULATE (
    SUMX (VALUES (Calendar[FiscalMonth]), [Gross Benefit]), 
    FILTER (
     ALL (Calendar), 
     Calendar[FiscalMonth] < MAX (Calendar[FiscalMonth]) 
    ) 
) 

Diese nur gibt Leerzeichen. Was kann ich tun?

+0

Wie ist die FiscalMonth-Spalte aufgebaut? Es ist 201605 oder nur 05? –

+0

Wie hast du den ersten Tisch bekommen? mit welcher Formel? und was ist [Ent vorheriger Monat Credit Sales] und [Änderung in 0-30%]? Maßnahmen auch? –

+0

Die erste Tabelle wird im Standard Excel mit festen Referenzen auf die Zellen zum Subtrahieren erreicht.Beide Felder, die Sie erwähnen, sind Maßnahmen. – JustNuts

Antwort

0

ich denke, dass wegen dieser Linie ist

SUMX (VALUES (Calendar [FiscalMonth]), [Gross Nutzen])

SUMX zu aggregieren versucht [Gross Nutzen] aus der Tabelle Werte (Kalender [FiscalMonth]), die nur eine Spalte hat, und das ist nicht Brutto-Nutzen und so leer summiert. Dies könnte stattdessen

Net Benefit := [Gross Benefit] - CALCULATE (
        [Gross Benefit], 
        FILTER (
         ALL (Calendar), 
         Calendar[FiscalMonth] < MAX (Calendar[FiscalMonth]) 
       ) 
       ) 

Summarize verwendet notwendige Spalten zu projizieren kann arbeiten, während VALUES

Die Lösung übernimmt FiscalMonth und Gross Benefit

nur eine Spalte Projekt in der gleichen Tabelle sein. Zusammenfassen funktioniert sonst nicht. Lass mich wissen, ob das funktioniert.

+0

Yeah FiscalMonth ist eine Spalte in meinem Kalender - Kalender [FiscalMonth], während [Brutto-Nutzen] ist ein Maß – JustNuts

+0

oh. In diesem Fall berechnet die bearbeitete Lösung den Bruttonutzen für alle Monate, die kleiner als der maximale Monat sind. Sie können jedoch nicht über einen Kennzahlwert summieren, da dieser global und nicht pro Spaltenattribut ist. Können Sie genau erklären, was Sie wollen? Wenn Sie einen Bruttonutzen für jeden Ent Kredit-Verkäufe des vorherigen Monats möchten, sollte es eine berechnete Spalte sein, kein Maß –

+0

auch, denke ich "Der Nettonutzen ist der Bruttonutzen für diesen Monat abzüglich der Summe der Bruttonutzen für alle die letzten Monate "diese Aussage/Annahme ist fehlerhaft. Denk darüber nach. –

0

Ich bin einer Lösung näher gekommen, indem ich die Formel gebrochen habe. Der [Nettonutzen] ist:

Der [Bruttovorteil] minus die Summe aller [Nettonutzen] s für jeden Monat vorher.

Also habe ich drei Maßnahmen erstellt. 1 - [Gross Nutzen]

Gross Wave Benefit 0-30 YTD:=([Change in 0-30 %] * [Ent Prior Month Credit Sales]) 

Beide sind Maßnahmen in einem bestimmten Kontext berechnet. Diese Maßnahme liefert korrekte Ergebnisse. 2. - [Summe der bisherigen Vorteile]

[Sum of Previous Benefits]:=CALCULATE (
SUMX (
    FILTER (
     ALL (Calendar), 
     Calendar[FM] < MAX (Calendar[FM]) 
      && Calendar[FY] = MAX (Calendar[FY]) 
    ), 
    [Gross Wave Benefit 0-30 YTD] 
)) 

Die Zusammenfassung Maßnahme [Net Benefit]

Net Wave Benefit 0-30 YTD:=[Gross Wave Benefit 0-30 YTD]-[Sum of previous benefit] 

Dies ist eine reinere Beschreibung des Problems, sondern trifft immer noch die rekursive/Kreisreferenzfehler.