Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedDon't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.
I have the following table.
Cust_ID | Date | transaction status | Month | ||||
1 | 01/01/2023 | FAIL | Jan | ||||
1 | 02/01/2023 | SUCCESS | Jan | ||||
2 | 02/01/2023 | FAIL | Jan | ||||
3 | 02/01/2023 | SUCCESS | Jan | ||||
4 | 03/01/2023 | FAIL | Jan | ||||
1 | 01/02/2023 | FAIL | Feb | ||||
1 | 02/02/2023 | SUCCESS | Feb | ||||
2 | 01/02/2023 | FAIL | Feb | ||||
3 | 02/02/2023 | SUCCESS | Feb | ||||
4 | 01/02/2023 | FAIL | Feb | ||||
4 | 02/02/2023 | SUCCESS | Feb | ||||
5 | 02/02/2023 | SUCCESS | Feb |
I want to create a table that is as follows.(Expected output)
Cust_ID | Month | Successful Transaction | |
1 | Jan | Yes | |
2 | Jan | No | |
4 | Jan | No | |
1 | Feb | No | |
2 | Feb | No | |
4 | Feb | Yes |
NB.
All 1-time successful transactions for each client are not required in the output.
For the months of January and February, we only have three transactions each in the output because they are either successful after a second trial or they failed completely.
All I am trying is to check if a client had a successful transaction in the same month after payment failed the first time. This is to decide if churn was decided by the number of failed transactions. How do I achieve that table?
Thanks.
Solved! Go to Solution.
Hi @Datagulf,
I am not sure it is the optimal solution to your problem, but it should work. Please try the [DAX] code below with your real data.
BTW, the test case seems to be not quite correct: with Cust_ID = 1 and Month = "Feb" you should have "yes" in the table.
In plain text:
Table =
FILTER (
ADDCOLUMNS (
SUMMARIZE ( data, [Cust_ID], [Month] ),
"Successful Transaction",
VAR CurrentMonth = [Month]
VAR CurrentID = [Cust_ID]
VAR FailExists = IF ( COUNTROWS ( FILTER ( data, [Cust_ID] = CurrentID && [Month] = CurrentMonth && [transaction status] = "FAIL" ) ) = 0, 0, 1 )
VAR MinFail = MINX ( FILTER ( data, [Cust_ID] = CurrentID && [Month] = CurrentMonth && [transaction status] = "FAIL" ), [Date] )
VAR MaxSuccess = MAXX ( FILTER ( data, [Cust_ID] = CurrentID && [Month] = CurrentMonth && [transaction status] = "SUCCESS" ), [Date] )
RETURN SWITCH ( TRUE(),
FailExists = 0, BLANK(),
MaxSuccess > MinFail, "Yes",
"No" ) ),
NOT ISBLANK ( [Successful Transaction] ) )
Best Regards,
Alexander
Hi @Datagulf,
I am not sure it is the optimal solution to your problem, but it should work. Please try the [DAX] code below with your real data.
BTW, the test case seems to be not quite correct: with Cust_ID = 1 and Month = "Feb" you should have "yes" in the table.
In plain text:
Table =
FILTER (
ADDCOLUMNS (
SUMMARIZE ( data, [Cust_ID], [Month] ),
"Successful Transaction",
VAR CurrentMonth = [Month]
VAR CurrentID = [Cust_ID]
VAR FailExists = IF ( COUNTROWS ( FILTER ( data, [Cust_ID] = CurrentID && [Month] = CurrentMonth && [transaction status] = "FAIL" ) ) = 0, 0, 1 )
VAR MinFail = MINX ( FILTER ( data, [Cust_ID] = CurrentID && [Month] = CurrentMonth && [transaction status] = "FAIL" ), [Date] )
VAR MaxSuccess = MAXX ( FILTER ( data, [Cust_ID] = CurrentID && [Month] = CurrentMonth && [transaction status] = "SUCCESS" ), [Date] )
RETURN SWITCH ( TRUE(),
FailExists = 0, BLANK(),
MaxSuccess > MinFail, "Yes",
"No" ) ),
NOT ISBLANK ( [Successful Transaction] ) )
Best Regards,
Alexander
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.
If you love stickers, then you will definitely want to check out our Community Sticker Challenge!
Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.
User | Count |
---|---|
144 | |
75 | |
63 | |
51 | |
48 |
User | Count |
---|---|
204 | |
86 | |
64 | |
59 | |
56 |