Forum Discussion
DAX Calculation: Average Cumulative Spend by 'Days Since'
- 5 years ago
Hi @
Because not clear about how your data model and table structure look like, so I create a sample.
You can take steps bellow for reference.
-
1. create a column
DaysSinceMembershipBegan column = VAR _start = RELATED ( Membership[MembershipStart] ) RETURN DATEDIFF ( _start, ( Orders[Date] ), DAY )2. create the measure:
if you want to divide by actual number,
then create the measure:
_average = VAR filter_table = FILTER ( ALL ( Orders ), Orders[DaysSinceMembershipBegan column] <= SELECTEDVALUE ( Orders[DaysSinceMembershipBegan column] ) ) VAR total = CALCULATE ( SUM ( Orders[Value] ), filter_table ) VAR membercount = CALCULATE ( DISTINCTCOUNT ( Orders[MembershipNo] ), filter_table ) VAR _div = DIVIDE ( total, membercount ) RETURN _divResult:
OR
if you want to divide by total number in membership table, create this measure
_average1 = VAR filter_table = FILTER ( ALL ( Orders ), Orders[DaysSinceMembershipBegan column] <= SELECTEDVALUE ( Orders[DaysSinceMembershipBegan column] ) ) VAR total = CALCULATE ( SUM ( Orders[Value] ), filter_table ) VAR membercount = COUNTROWS ( Membership ) VAR _div = DIVIDE ( total, membercount ) RETURN _divresult:
Hope this helps.
Best Regards,
Community Support Team _ Tang
If this post helps, please consider Accept it as the solution to help the other members find it more quickly.
Hi @
Because not clear about how your data model and table structure look like, so I create a sample.
You can take steps bellow for reference.
-
1. create a column
DaysSinceMembershipBegan column =
VAR _start =
RELATED ( Membership[MembershipStart] )
RETURN
DATEDIFF ( _start, ( Orders[Date] ), DAY )
2. create the measure:
if you want to divide by actual number,
then create the measure:
_average =
VAR filter_table =
FILTER (
ALL ( Orders ),
Orders[DaysSinceMembershipBegan column]
<= SELECTEDVALUE ( Orders[DaysSinceMembershipBegan column] )
)
VAR total =
CALCULATE ( SUM ( Orders[Value] ), filter_table )
VAR membercount =
CALCULATE ( DISTINCTCOUNT ( Orders[MembershipNo] ), filter_table )
VAR _div =
DIVIDE ( total, membercount )
RETURN
_div
Result:
OR
if you want to divide by total number in membership table, create this measure
_average1 =
VAR filter_table =
FILTER (
ALL ( Orders ),
Orders[DaysSinceMembershipBegan column]
<= SELECTEDVALUE ( Orders[DaysSinceMembershipBegan column] )
)
VAR total =
CALCULATE ( SUM ( Orders[Value] ), filter_table )
VAR membercount =
COUNTROWS ( Membership )
VAR _div =
DIVIDE ( total, membercount )
RETURN
_div
result:
Hope this helps.
Best Regards,
Community Support Team _ Tang
If this post helps, please consider Accept it as the solution to help the other members find it more quickly.