Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hi. I'm new in to Power BI and I'm currently making a new column that would give me the latency(no. of days between each transaction) for every member (card number). Our business rule defined the formula for latency as:
For Example: A member has an accumulated 3 visits:
Visit3-Visit2 = Diff 1 Visit2 -Visit1 =Diff 2 Get average of all differences to get value for latency |
My data looks something like this:
Given that data set, what DAX formula should I use? What if a member would incur more than 3 visits? I came across a script online but I am not sure if it's correct but I gave it a try in Power BI but I encountered an error.
Tried it and I got this error:
I would really appreciate your help guys. I badly need this for a report presentation for my project. Thank you in advance!
Solved! Go to Solution.
Hi @Anonymous,
Based on your sample data, I have created .pbix for you. You can download it.
The issue that you got error because the DateDiff() requires only three parameters passed. You can create the calculated column like below:
Diff = var d=CALCULATE(MAX('Table1'[Transaction Date]),FILTER('Table1','Table1'[Card No.]=EARLIER(Table1[Card No.]) && 'Table1'[Transaction Date]<EARLIER(Table1[Transaction Date]))) return IF('Table1'[Transaction Date]<d,DATEDIFF('Table1'[Transaction Date],d,DAY),DATEDIFF(d,'Table1'[Transaction Date],DAY))
Then create a measure like below to return average of those difference values for each Card No.
Latency = CALCULATE(AVERAGE(Table1[Diff]),FILTER(ALL(Table1),'Table1'[Card No.]=MAX('Table1'[Card No.])))
Best Regards,
Qiuyun Yu
Hi @Anonymous,
Based on your sample data, I have created .pbix for you. You can download it.
The issue that you got error because the DateDiff() requires only three parameters passed. You can create the calculated column like below:
Diff = var d=CALCULATE(MAX('Table1'[Transaction Date]),FILTER('Table1','Table1'[Card No.]=EARLIER(Table1[Card No.]) && 'Table1'[Transaction Date]<EARLIER(Table1[Transaction Date]))) return IF('Table1'[Transaction Date]<d,DATEDIFF('Table1'[Transaction Date],d,DAY),DATEDIFF(d,'Table1'[Transaction Date],DAY))
Then create a measure like below to return average of those difference values for each Card No.
Latency = CALCULATE(AVERAGE(Table1[Diff]),FILTER(ALL(Table1),'Table1'[Card No.]=MAX('Table1'[Card No.])))
Best Regards,
Qiuyun Yu
Thanks u, I have solved my problem.
Hi @v-qiuyu-msft, in relation to this solved problem, I am now trying to create a segmentation based on the members' latency and Average Ticket Value.
My segmentation looks something like this:
And I want to know how can I do it in DAX given the data set that I currently have.
Hoping for your response.
Thank you!
Thank you! This worked for me.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
110 | |
94 | |
80 | |
66 | |
58 |
User | Count |
---|---|
150 | |
119 | |
104 | |
87 | |
67 |