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 Folks,
I have an table called "Client_Shipments" with the following columns: [Client_name], [Send_location], [Receive_location], [Cost], [Error_rate]. I'm trying to check if for the client_name in each row, there's a match in the same table "Client_Shipments", which has the same values for [Send_Location], [Receive_Location], but does not have the same Client_name.
Basically, are there other clients who've sent something from the same start and end point? The [Cost] and [Error_rate] values do not need to match, since that's what I want to compare later. I created an example table below, along with the desired output in column [Match_found?].
Client_name | Send_location | Receive_location | Cost | Error_rate | Match_found? |
Client_A | CA | NJ | $1000 | 1% | true |
Client_A | AZ | IL | $300 | 10% | true |
Client_A | FL | DE | $400 | 5% | false |
Client_B | MA | CO | 1500 | 3% | false |
Client_B | MO | AK | $500 | 1% | false |
Client_B | AZ | IL | $400 | 5% | true |
Client_B | CA | NJ | $1200 | 1% | true |
Any thoughts on how to make that work? Thank you in advance.
Solved! Go to Solution.
Hi @ndeshpande
You could add it as a new column:
Match_Found_Col =
VAR cl = [Client_name]
VAR sl = [Send_location]
VAR rl = [Receive_location]
VAR c =
COUNTROWS (
CALCULATETABLE (
VALUES ( ClientOrders ),
FILTER (
ALL ( ClientOrders ),
[Send_location] = sl
&& [Receive_location] = rl
&& [Client_name] <> cl
)
)
) + 0
RETURN
IF ( c > 0, TRUE (), FALSE () )
Or as a measure:
Match_Found_Mes =
VAR cl =
FIRSTNONBLANK ( ClientOrders[Client_name], 1 )
VAR sl =
SELECTEDVALUE ( ClientOrders[Send_location], "123" )
VAR rl =
SELECTEDVALUE ( ClientOrders[Receive_location], "123" )
VAR c =
COUNTROWS (
CALCULATETABLE (
VALUES ( ClientOrders ),
FILTER (
ALL ( ClientOrders ),
[Send_location] = sl
&& [Receive_location] = rl
&& [Client_name] <> cl
)
)
) + 0
RETURN
IF ( c > 0, TRUE (), FALSE () )
Cheers
Edit: Ah, sorry @parry2k , I hadn't seen your answer.
Hi @ndeshpande
You could add it as a new column:
Match_Found_Col =
VAR cl = [Client_name]
VAR sl = [Send_location]
VAR rl = [Receive_location]
VAR c =
COUNTROWS (
CALCULATETABLE (
VALUES ( ClientOrders ),
FILTER (
ALL ( ClientOrders ),
[Send_location] = sl
&& [Receive_location] = rl
&& [Client_name] <> cl
)
)
) + 0
RETURN
IF ( c > 0, TRUE (), FALSE () )
Or as a measure:
Match_Found_Mes =
VAR cl =
FIRSTNONBLANK ( ClientOrders[Client_name], 1 )
VAR sl =
SELECTEDVALUE ( ClientOrders[Send_location], "123" )
VAR rl =
SELECTEDVALUE ( ClientOrders[Receive_location], "123" )
VAR c =
COUNTROWS (
CALCULATETABLE (
VALUES ( ClientOrders ),
FILTER (
ALL ( ClientOrders ),
[Send_location] = sl
&& [Receive_location] = rl
&& [Client_name] <> cl
)
)
) + 0
RETURN
IF ( c > 0, TRUE (), FALSE () )
Cheers
Edit: Ah, sorry @parry2k , I hadn't seen your answer.
@ndeshpande you can try following method
Add new column and measure and measure will return true/false
Receive and Send Column = 'Table'[Receive_location] & 'Table'[Send_location]
Is Exist Measure =
VAR __current = VALUES ( 'Table'[Receive and Send Column] )
VAR __client = SELECTEDVALUE ( 'Table'[Client_name] )
VAR __other = CALCULATETABLE ( VALUES ( 'Table'[Receive and Send Column] ), ALL ( 'Table'[Receive and Send Column] ), 'Table'[Client_name] <> __client )
VAR __isExist = CALCULATE ( COUNTROWS ( 'Table' ), INTERSECT ( __other, __current ) ) + 0
RETURN
IF ( __isExist = 0, "False", "True" )
I would ❤ Kudos if my solution helped. 👉 If you can spend time posting the question, you can also make efforts to give Kudos 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.⚡
Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!
Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo
If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤
Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.
Thanks for the quick response, I was thinking I'll probably need to convert the measure to a column. However the combining the relevant separate column values into a single colum was a great idea because it will simplify my searches later on.
Thank you!
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 |
---|---|
109 | |
99 | |
77 | |
66 | |
54 |
User | Count |
---|---|
144 | |
104 | |
101 | |
86 | |
64 |