Scenario:
Let's suppose we have a Data Model as follows with Orders and Sales details.
From this Model, we can calculate the Rolling 12 Months Sales and Average Sales using the below DAX Expressions.
VAR LastSelectDate=MAX('tbl_Calendar'[cDate])
VAR PeriodRange=DATESINPERIOD('tbl_Calendar'[cDate], LastSelectDate,-NumOfMonths,MONTH)
VAR Result=CALCULATE(
AVERAGEX(VALUES(tbl_Calendar[Month_No]), [Total Sales]),
Let's suppose we have a Data Model as follows with Orders and Sales details.
Sales Rolling12M_Total =
VAR NumOfMonths=12
VAR LastSelectDate=MAX('tbl_Calendar'[cDate])
VAR PeriodRange=DATESINPERIOD('tbl_Calendar'[cDate], LastSelectDate,-NumOfMonths,MONTH)
VAR Result=CALCULATE(
SUMX(VALUES(tbl_Calendar[Month_No]), [Total Sales]),
VAR NumOfMonths=12
VAR LastSelectDate=MAX('tbl_Calendar'[cDate])
VAR PeriodRange=DATESINPERIOD('tbl_Calendar'[cDate], LastSelectDate,-NumOfMonths,MONTH)
VAR Result=CALCULATE(
SUMX(VALUES(tbl_Calendar[Month_No]), [Total Sales]),
PeriodRange
)
VAR LastDateOfSales=MAX(tbl_OrderDetails[Order_Date])
VAR FirstSelectedDate=MIN('tbl_Calendar'[cDate])
RETURN
IF(FirstSelectedDate<=LastDateOfSales,Result)
VAR LastDateOfSales=MAX(tbl_OrderDetails[Order_Date])
VAR FirstSelectedDate=MIN('tbl_Calendar'[cDate])
RETURN
IF(FirstSelectedDate<=LastDateOfSales,Result)
Sales Rolling12M_Avg =
VAR NumOfMonths=12VAR LastSelectDate=MAX('tbl_Calendar'[cDate])
VAR PeriodRange=DATESINPERIOD('tbl_Calendar'[cDate], LastSelectDate,-NumOfMonths,MONTH)
VAR Result=CALCULATE(
AVERAGEX(VALUES(tbl_Calendar[Month_No]), [Total Sales]),
PeriodRange
)
VAR LastDateOfSales=MAX(tbl_OrderDetails[Order_Date])
VAR FirstSelectedDate=MIN('tbl_Calendar'[cDate])
RETURN
IF(FirstSelectedDate<=LastDateOfSales,Result)
VAR LastDateOfSales=MAX(tbl_OrderDetails[Order_Date])
VAR FirstSelectedDate=MIN('tbl_Calendar'[cDate])
RETURN
IF(FirstSelectedDate<=LastDateOfSales,Result)
Notes:
LastDateOfSales - is the last date for which the Sales is available
FirstSelectedDate - is the first visible date of each Selected Date/Month in the Visual.
The condition IF(FirstSelectedDate<=LastDateOfSales,Result) will ensures the result for only the available Sales dates.
No comments:
Post a Comment
Hi User, Thank You for visiting My Blog. If you wish, please share your genuine Feedback or comments only related to this Blog Posts. It is my humble request that, please do not post any Spam comments or Advertising kind of comments, which will be Ignored.