Forum Discussion

Index_Match's avatar
Index_Match
Frequent Visitor
4 years ago
Solved

Measure Repeat Customer by Date

Hi all,

 

I think I have a somewhat easy question, but I'm having a hard time solving. I'm try to find the count of repeat customers by year, comparing this year to the previous year. For example, in the sample data table John would not count as a repeat customer because it was not in consecutive years. Thank you in advance!

 

Sample Data

YearCustomer
1/1/2018| John
1/1/2018| Sam
1/1/2019| Sam
1/1/2019| Leon
1/1/2020| John
1/1/2020| Sam
1/1/2020| Leon

 

 

Expected Result

 

YearRepeat Customer from Previous Year
1/1/2018| 0
1/1/2019| 1
1/1/2020| 2



  • Hi Index_Match 

     

    Try this measure [without Date Table]:

    Repeat Customers =
    VAR _A =
        ADDCOLUMNS (
            Customer,
            "CY",
                CALCULATE (
                    DISTINCTCOUNT ( Customer[Customer] ),
                    FILTER (
                        ALL ( customer ),
                        YEAR ( Customer[Year] )
                            = YEAR ( EARLIER ( Customer[Year] ) ) - 1
                            && Customer[Customer] = EARLIER ( Customer[Customer] )
                    )
                ) + 0
        )
    RETURN
        SUMX ( _A, [CY] )

     

     

    output:

     

     

     

    If this post helps, please consider accepting it as the solution to help the other members find it more quickly.
    Appreciate your Kudos!!
    LinkedIn: 
    www.linkedin.com/in/vahid-dm/

     

     

4 Replies

  • Index_Match solution attached, and core measure is this:

     

    Repeat Customers = 
    VAR __thisYearCustomer = VALUES ( Customer[Customer] )
    VAR __lastYearCustomer = CALCULATETABLE ( VALUES ( Customer[Customer] ), PREVIOUSYEAR ('Calendar'[Date] ) ) 
    RETURN
    COUNTROWS ( INTERSECT ( __thisYearCustomer, __lastYearCustomer ) ) + 0

     

     

    Follow us on LinkedIn and  to our YouTube channel

     

    Learn about conditional formatting at Microsoft Reactor

    My latest blog post The Power of Using Calculation Groups with Inactive Relationships (Part 1) (perytus.com) I would  Kudos if my solution helped. 👉 If you can spend time posting the question, you can also make efforts to give Kudos to whoever helped to solve your problem. It is a token of appreciation!

     

    Visit us at https://perytus.com, your one-stop-shop for Power BI-related projects/training/consultancy.

  • Hi Index_Match 

     

    Try this measure [without Date Table]:

    Repeat Customers =
    VAR _A =
        ADDCOLUMNS (
            Customer,
            "CY",
                CALCULATE (
                    DISTINCTCOUNT ( Customer[Customer] ),
                    FILTER (
                        ALL ( customer ),
                        YEAR ( Customer[Year] )
                            = YEAR ( EARLIER ( Customer[Year] ) ) - 1
                            && Customer[Customer] = EARLIER ( Customer[Customer] )
                    )
                ) + 0
        )
    RETURN
        SUMX ( _A, [CY] )

     

     

    output:

     

     

     

    If this post helps, please consider accepting it as the solution to help the other members find it more quickly.
    Appreciate your Kudos!!
    LinkedIn: 
    www.linkedin.com/in/vahid-dm/

     

     

    • Index_Match's avatar
      Index_Match
      Frequent Visitor

      How would the measure need to be adjusted if using a date table?