Forum Discussion
weighted average date
Hi,
I'm working with a sales table that has three main columns: Amount sold; day sold; and day payed. I'd like to know what is the average days that I take between sell a product and be payed, but I would like as well to do a weighted average.
It was supposed to be something like this: SUMX( (Amount Sold) * (Day payed - day sold) / (Total Amount sold).
How can I do a measure that return me directly this result?
Hi Anonymous
Yes, that's exactly the idea.
In DAX, I would write something like this:
Average days sold-paid = VAR TotalAmountSold = SUM ( Sales[Amount Sold] ) RETURN DIVIDE ( SUMX ( Sales, ( Sales[Day Paid] - Sales[Day Sold] ) * Sales[Amount Sold] ), TotalAmountSold )Another version that could improve performance depending on distribution of your dates, especially if you have the same pairs of dates occurring repeatedly:
Average days sold-paid = VAR TotalAmountSold = SUM ( Sales[Amount Sold] ) RETURN DIVIDE ( SUMX ( SUMMARIZE ( Sales, Sales[Day Paid], Sales[Day Sold] ), ( Sales[Day Paid] - Sales[Day Sold] ) * CALCULATE ( SUM ( Sales[Amount Sold] ) ) ), TotalAmountSold )Regards,
Owen
2 Replies
- OwenAugerSuper User
Hi Anonymous
Yes, that's exactly the idea.
In DAX, I would write something like this:
Average days sold-paid = VAR TotalAmountSold = SUM ( Sales[Amount Sold] ) RETURN DIVIDE ( SUMX ( Sales, ( Sales[Day Paid] - Sales[Day Sold] ) * Sales[Amount Sold] ), TotalAmountSold )Another version that could improve performance depending on distribution of your dates, especially if you have the same pairs of dates occurring repeatedly:
Average days sold-paid = VAR TotalAmountSold = SUM ( Sales[Amount Sold] ) RETURN DIVIDE ( SUMX ( SUMMARIZE ( Sales, Sales[Day Paid], Sales[Day Sold] ), ( Sales[Day Paid] - Sales[Day Sold] ) * CALCULATE ( SUM ( Sales[Amount Sold] ) ) ), TotalAmountSold )Regards,
Owen
- AnonymousNot applicable
Thanks Bro, you were awesome! It worked perfect