2016-12-20 1 views
1

Ich erstelle einen benutzerdefinierten Kalender in Power Bi.Benutzerdefinierter Kalender in Power BI (DAX) - Berechnete Spalte für Fiskalquartal

Ich arbeite hauptsächlich mit den Werten des US-Geschäftsjahres, was bedeutet, dass ein Geschäftsjahr 2017 am 1. Oktober (2016-10-01) begann und am 30. September (2017-09-30) endet. Also, aktuelles Kalenderjahr Geschäftsjahr im Vergleich zu würde wie folgt aussehen:

=============================================== 
Calendar YearMonth  || Fiscal YearMonth 
=============================================== 
201601     || 201604 
201602     || 201605 
201603     || 201606 
201604     || 201607 
201605     || 201608 
201606     || 201609 
201607     || 201610 
201608     || 201611 
201609     || 201612 
201610     || 201701 
201611     || 201702 
201612     || 201703 

um Monat-to-date, Viertel-to-date und year-to-date-Werte zu berechnen, ich brauche einen Arbeitskalender. Ich habe versucht, das Problem anzugehen, indem ich berechnete Spalten erstellt habe.

Fiscal Year = IF(MONTH([DATE]) > 9, YEAR([DATE])+1, YEAR([DATE])) 

Fiscal YearMonth No = 
SWITCH( 
    TRUE(), 
    MONTH('Calendar'[Date]) = 10, 1, 
    MONTH('Calendar'[Date]) = 11, 2, 
    MONTH('Calendar'[Date]) = 12, 3, 
    MONTH('Calendar'[Date]) = 1, 4, 
    MONTH('Calendar'[Date]) = 2, 5, 
    MONTH('Calendar'[Date]) = 3, 6, 
    MONTH('Calendar'[Date]) = 4, 7, 
    MONTH('Calendar'[Date]) = 5, 8, 
    MONTH('Calendar'[Date]) = 6, 9, 
    MONTH('Calendar'[Date]) = 7, 10, 
    MONTH('Calendar'[Date]) = 8, 11, 
    MONTH('Calendar'[Date]) = 9, 12 
    ) 

Aber leider scheinen kann ich nicht eine Formel, um herauszufinden, das Geschäftsjahr Quarter Nr Mein letzter Versuch zu verwenden, war zu bekommen:

Ich habe zu arbeiten, zu verwaltendes Geschäftsjahr und Fiscal Month Nr Formeln erhalten SWITCH-Funktion zusammen mit DATESBETWEEN wie folgt:

Fiscal YearQuarter No = 
SWITCH( 
    TRUE(), 
    (DATESBETWEEN('Calendar',MONTH('Calendar'[Date]) >= 9, MONTH('Calendar'[Date])) <= 12)), 1, 
    (DATESBETWEEN ('Calendar'[Date],MONTH('Calendar'[Date]) >= 1, MONTH('Calendar'[Date]) <= 3)), 2, 
    (DATESBETWEEN ('Calendar'[Date],MONTH('Calendar'[Date]) >= 4, MONTH('Calendar'[Date]) <= 6)), 3, 
    (DATESBETWEEN ('Calendar'[Date],MONTH('Calendar'[Date]) >= 7, MONTH('Calendar'[Date]) <= 9)), 4 
) 

Leider bekomme ich einen Syntaxfehler.

Antwort

0

Da die Funktion MONTH() einen ganzzahligen Wert zurückgibt, glaube ich, dass Sie deshalb einen Syntaxfehler bekommen, indem Sie diesen mit einer DATESBETWEEN() - Funktion umschließen.

Verwenden Sie stattdessen einfach ganzzahlige Operatoren. Getestet habe ich Ihre Daten mit dieser Berechnung und es funktioniert:

Fiscal YearQuarter No = 
SWITCH(
    TRUE(), 
    MONTH('Calendar'[Date])>=10 && MONTH('Calendar'[Date]) <= 12,1, 
    MONTH('Calendar'[Date])>=1 && MONTH('Calendar'[Date]) <= 3,2, 
    MONTH('Calendar'[Date])>=4 && MONTH('Calendar'[Date]) <= 6,3, 
    MONTH('Calendar'[Date])>=7 && MONTH('Calendar'[Date]) <= 9,4 
) 

Auch Sie wahrscheinlich nicht brauchen einen so langen Ausdruck für Ihr Geschäft Monat Zahlen zu berechnen, da Ihr Geschäftskalender sind einfach von 3 Monate nach dem Standardkalender ausgeglichen. Probieren Sie eine arithmetische Formel aus, um sie durch zu ersetzen. Dies sollte funktionieren:

Fiscal YearMonth No= = 
=IF((MONTH('Calendar'[Date])+3)>12,ABS(12-(MONTH('Calendar'[Date])+3)),(MONTH('Calendar'[Date])+3)) 
+1

@ RedVII Genau das, was ich für das Fiskalquartal brauchte! Dankesehr. Ihre Formel für den Finanzmonat funktioniert auch wie ein Charme! – Blase

0

Sie können einfach Ihr Kalenderjahr zu Geschäftsjahr ändern wie diese

Fiscal Month = Orders[Order Date].[Month] 

Fiscal Year = CONCATENATE("FY ",IF(Orders[Order Date].[MonthNo]>=4 && Orders[Order Date].[MonthNo]<=12,Orders[Order Date].[Year],Orders[Order Date]. 

[Year]-1)) 

Das Geschäftsjahr ist nach dem indischen Geschäftsjahr.

Verwandte Themen