Forum Discussion

Kareem_Amr_IT's avatar
Kareem_Amr_IT
Frequent Visitor
4 years ago

First time orders in a given period

We would like to make a DAX measure that shows users that have had their first order in a period.

 

I tried using:


FirstInteractionDate = CALCULATE(MIN(orders[created_date]),DATESBETWEEN('Date'[Date],MINX(all('Calendar'),'Calendar'[Date]),MAX('Calendar'[Date]))) and New Customers = COUNTROWS(FILTER(VALUES(orders[customer.id]),[FirstInteractionDate] >= MIN('Calendar'[Date]))) to try and calculate it,

 

but it shows the active users, which are measured with this:
ordered_user_count = CALCULATE(DISTINCTCOUNT(orders[customer.id]), FILTER(orders, orders[order_count_per_customer] > 0))+0

 

with the order_count_per_customer being:
order_count_per_customer = CALCULATE(COUNTROWS(orders),FILTER(orders,orders[customer.id]=EARLIER(orders[customer.id])))

 

How would I calculate the first order users in a given period of time?

Thanks

1 Reply

  • Greg_Deckler's avatar
    Greg_Deckler
    Icon for Community Champion rankCommunity Champion

    Kareem_Amr_IT Maybe something along the lines of:

    Measure = 
      VAR __MinDateInPeriod = MIN('Calendar'[Date])
      VAR __MaxDateInPeriod = MAX('Calendar'[Date])
      VAR __PreviousCustomers = 
        SELECTCOLUMNS(
          FILTER('orders',[created_date]<__MinDateInPeriod),
          "__customerID",[customer.id]
        )
      VAR __CustomersInPeriod = 
        SELECTCOLUMNS(
          FILTER('orders',[created_date]>=__MinDateInPeriod && [created_date]<=__MaxDateInPeriod),
          "__customerID",[customer.id]
        )
    RETURN
      CONCATENATEX(EXCEPT(__CustomersInPeriod,__PreviousCustomers),[__customerID],", ")