Forum Discussion

N_R_000's avatar
N_R_000
Icon for Helper I rankHelper I
5 years ago
Solved

DAX Calculation: Average Cumulative Spend by 'Days Since'

I have a dataset of [Members] and [Orders] and I need to find the 'Average Spend Per Member', but the bit I'm struggling with is I need that same measure broken down so it can be used in a 'Cumulativ...
  • v-xiaotang's avatar
    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
        _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.