cancel
Showing results for
Did you mean:

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Anonymous
Not applicable

## measure not counting values from prior year

Hello Forum  -  I have a measure below that looks at the Order Date  and the   Due Date  (both on my Orders table).    Due Date is connected to my date table.

The formula says return the sum of the quantity ordered when the order date month is 2 months (or more) earlier than the due date month.      The only problem is that it does not factor in the year.   So, in the table below, the Sept 2019 order is not being picked up because the formula believes that 9 is greater than 5...which it is...but in this case I also need the Year to be taken into consideration.   So, September (month 9) 2019 is of course less than  May (month 5) of 2021.

Not sure how to modify the measure below to account for the year as well when the order date month is larger than the due month (but the order date year is in the previous year).   Any suggestions?

Start of Month minus 2 =

VAR vTable = CALCULATETABLE(Orders,ALL('Date Table'[Date]))
VAR nTable = FILTER(vTable,Orders[Order Date Month] <= Orders[Due Date Month] -2)
VAR _Result = SUMX(nTable,[SumX of Qty Ordered])
RETURN
_Result

2 ACCEPTED SOLUTIONS
Super User

@Anonymous , Try like

VAR vTable = CALCULATETABLE(Orders,ALL('Date Table'[Date]))
VAR nTable = FILTER(vTable,Orders[Order Date] <= eomonth(Orders[Due Date],-3)+1 ) // or use -2
VAR _Result = SUMX(nTable,[SumX of Qty Ordered])
RETURN
_Result

or

VAR vTable = CALCULATETABLE(Orders,ALL('Date Table'[Date]))
var _date = date(year(Orders[Due Date]), month(Orders[Due Date])-2, day(Orders[Due Date]))
VAR nTable = FILTER(vTable,Orders[Order Date] <= _date ) // or use -2
VAR _Result = SUMX(nTable,[SumX of Qty Ordered])
RETURN
_Result

Anonymous
Not applicable

Many Many thanks @amitchandak

Iused this version and it worked fine.    Also, I had figured out another way that I think works, but yours is more elegant.  My version is posted below yours.

Start of Month minus 2 v.2 =
VAR vTable = CALCULATETABLE(Orders,ALL('Date Table'[Date]))
VAR nTable = FILTER(vTable,Orders[Order Date] <= eomonth(Orders[Due Date],-2))
VAR _Result = SUMX(nTable,[SumX of Qty Ordered])
RETURN
_Result

My version
Start of Month minus 2 =

VAR vTable = CALCULATETABLE(Orders,ALL('Date Table'[Date]))
VAR nTable = FILTER(vTable,Orders[Order Date Month] <= Orders[Due Date Month] -2 || Orders[Order Date Month] <= Orders[Due Date Month] +10 && Orders[Order Date Year] < Orders[Due Date Year])
VAR _Result = SUMX(nTable,[SumX of Qty Ordered])
RETURN
_Result

2 REPLIES 2
Super User

@Anonymous , Try like

VAR vTable = CALCULATETABLE(Orders,ALL('Date Table'[Date]))
VAR nTable = FILTER(vTable,Orders[Order Date] <= eomonth(Orders[Due Date],-3)+1 ) // or use -2
VAR _Result = SUMX(nTable,[SumX of Qty Ordered])
RETURN
_Result

or

VAR vTable = CALCULATETABLE(Orders,ALL('Date Table'[Date]))
var _date = date(year(Orders[Due Date]), month(Orders[Due Date])-2, day(Orders[Due Date]))
VAR nTable = FILTER(vTable,Orders[Order Date] <= _date ) // or use -2
VAR _Result = SUMX(nTable,[SumX of Qty Ordered])
RETURN
_Result

Anonymous
Not applicable

Many Many thanks @amitchandak

Iused this version and it worked fine.    Also, I had figured out another way that I think works, but yours is more elegant.  My version is posted below yours.

Start of Month minus 2 v.2 =
VAR vTable = CALCULATETABLE(Orders,ALL('Date Table'[Date]))
VAR nTable = FILTER(vTable,Orders[Order Date] <= eomonth(Orders[Due Date],-2))
VAR _Result = SUMX(nTable,[SumX of Qty Ordered])
RETURN
_Result

My version
Start of Month minus 2 =

VAR vTable = CALCULATETABLE(Orders,ALL('Date Table'[Date]))
VAR nTable = FILTER(vTable,Orders[Order Date Month] <= Orders[Due Date Month] -2 || Orders[Order Date Month] <= Orders[Due Date Month] +10 && Orders[Order Date Year] < Orders[Due Date Year])
VAR _Result = SUMX(nTable,[SumX of Qty Ordered])
RETURN
_Result