2016-12-07 2 views
0

Vormonats Ich bin mit DAX in Power-BI Vorheriger Monat Gesamtumsatz auf dem Laufenden berechnen einen KPI visuellen zu erstellen. Wenn heute der 7. Dezember ist, möchte ich die Gesamtverkäufe vom 1. November bis zum 7. November erhalten und mit dem aktuellen Monat bis heute vergleichen.DAX Vorheriger Monat insgesamt bisher schenkt gesamte ganzen Gesamt

CurrentMTD = TOTALMTD(SUM(SALES_VOUCHERS[SaleValue]),DatesTable[Date]) 

Das funktioniert gut. Aber letzten Monat YTD gibt mir insgesamt für den gesamten Monat November. Ich habe versucht, die folgenden bisher

PMYTD = totalmtd(sum(SALES_VOUCHERS[SaleValue]),dateadd(DATESMTD(DatesTable[Date]),-1,month)) 

und

PMYTD = CALCULATE(sum(SALES_VOUCHERS[SaleValue]), 
    DATESBETWEEN(DatesTable[Date],      
     FIRSTDATE(PREVIOUSMONTH(DatesTable[Date])), 
     LASTDATE(DATEADD(DatesTable[Date],-1,MONTH)))) 

Beide geben die gleiche Antwort, die für den gesamten Vormonat insgesamt ist. Wenn ich einfach das Anfangs- und Enddatum in Daten zwischen der obigen Version fest codiere, dann bekomme ich das gewünschte Ergebnis. Aber das ist nicht die Lösung.

Ich habe die Faktentabelle (Sales_VOUCHERS) zu einem DatesTable verknüpft und ab sofort gibt es keine anderen Visuals auf der Berichtsseite. Bitte helfen Sie mir, was ich verpasse und wie ich bekommen kann Vorheriger Monat Jahr bis Datum Gesamt

Antwort

0

Wenn Sie aggregieren auf der Monatsebene (dh Sie sehen Dezember 2016 vs November 2016), dann die messen Sie haben oben zeigen Ihnen den gesamten Monat Dezember im Vergleich zum gesamten Monat November (und seit Dezember ist ein Teilmonat und November ist nicht, verursacht es die Diskrepanz, die Sie sehen).

Wenn Sie das aktuelle Datum filtern (z 7. Dezember), dann beide Ihre MTD und Vormonats MTD Maßnahmen zeigen Ihnen nur durch das 7. ihrer entsprechenden Monate.

Angenommen, Sie nicht auf den Tag Ebene gefiltert werden soll (nicht unvernünftig), könnten Sie Ihre Formel verbessern zukünftige Daten auszufiltern. Zum Beispiel:

PMYTD = totalmtd(
    sum(SALES_VOUCHERS[SaleValue]), 
    dateadd(
     FILTER(
      DATESMTD(DatesTable[Date]), 
      DatesTable[Date]<TODAY() 
     ), 
     -1, 
     month 
    ) 
) 

Dies sagt, wenn das Datum nach dem heutigen Tag ist, nicht in die Berechnung TOTALMTD passieren (so wird es die ersten 7 Tage des Monats, zum Beispiel nur berechnen, wenn heute Dec 8. - auch wenn Sie volle Monate auf Ihren Bericht schauen.

Randbemerkung: Sie können auch Ihre vorherigen Monat Maßnahme schreiben eher Ihre MTD Maßnahme wieder zu verwenden, als es neu zu definieren. Auf diese Weise wird die vorherige MTD-Berechnung automatisch aktualisiert, wenn Sie die MTD-Berechnung ändern.

PMYTD = CALCULATE(
    [CurrentMTD], 
    DATEADD(
     FILTER(
      DatesTable[Date], 
      DatesTable[Date]<TODAY() 
     ), 
     -1, 
     MONTH 
    ) 
) 

Nützliche Ressourcen:

  1. https://www.powerpivotpro.com/2016/01/year-to-date-in-previousprior-year/ (Artikel, der dieses Problem und eine Vielzahl von Lösungen umfasst)
  2. https://community.powerbi.com/t5/Desktop/Compare-MTD-with-previous-period/td-p/24656 (forum Diskussion über das gleiche Problem)
  3. http://community.powerbi.com/t5/Desktop/Time-Intelligence-TOTALMTD-vs-DATESMTD-vs-DATEADD/td-p/10088 (forum Diskussion über DATESMTD vs TOTALMTD)