Power-BI / Dax: Count emails multiple times in a function based on the same dimension (#Order)

50 views Asked by At

Starting Point

A table contains two columns:

  • E-Mail (string, Unique)
  • Number of Orders (Integer)

Example Dataset:

 | E-Mail             | #Orders |
 | —————-—————-————-  |———————  |
 | [email protected]  | 1       |
 | [email protected]  | 1       |
 | [email protected]  | 4       |
 | [email protected]  | 4       |
 | [email protected]  | 4       |
 | [email protected]  | 5       |
 | [email protected]  | 2       |
 | [email protected]  | 1       |
 | [email protected]  | 5       |
 | [email protected] | 4       |

Goal:

A funnel analysis is to be created: It aims to analyze how many customers (= number of unique email addresses) have

  • Made at least 1 order
  • Made at least 2 orders
  • Made at least 3 orders

Example: Made at least 2 orders = Distinctcount (E-Mail) where #Orders >= 2

Example Chart:

Bar chart

How do I build the solution in DAX ?

1

There are 1 answers

6
Amira Bedhiafi On BEST ANSWER

You need to create a calculated table where you list the label and the result :

MinOrdersTable = 
UNION(
    ROW("MinXOrder", "Min 1 Order", "Result", CALCULATE(DISTINCTCOUNT(OrdersTable[Email]), OrdersTable[Orders] >= 1)),
    ROW("MinXOrder", "Min 2 Orders", "Result", CALCULATE(DISTINCTCOUNT(OrdersTable[Email]), OrdersTable[Orders] >= 2)),
    ROW("MinXOrder", "Min 3 Orders", "Result", CALCULATE(DISTINCTCOUNT(OrdersTable[Email]), OrdersTable[Orders] >= 3)),
    ROW("MinXOrder", "Min 4 Orders", "Result", CALCULATE(DISTINCTCOUNT(OrdersTable[Email]), OrdersTable[Orders] >= 4)),
    ROW("MinXOrder", "Min 5 Orders", "Result", CALCULATE(DISTINCTCOUNT(OrdersTable[Email]), OrdersTable[Orders] >= 5))
)

enter image description here

enter image description here