Forum Discussion
Find whats different between elements of a string
Im having trouble figuring out how to get it done.
Need to find the difference between elements of two strings using DAX
A dummy table to ilustrate what i have:
What i need on C:
- Anonymous2 years ago
Hi,
Thanks for the solution rajendraongole1 provided, and i want to offer some more information for user to rerfer to.
hello rlfRodrigo , you can refer to the following calculated column.
Column = VAR a = SELECTCOLUMNS ( ADDCOLUMNS ( GENERATESERIES ( 1, PATHLENGTH ( [A] ), 1 ), "Value_A", PATHITEM ( [A], [Value] ) ), "ValueA", [Value_A] ) VAR b = SELECTCOLUMNS ( ADDCOLUMNS ( GENERATESERIES ( 1, PATHLENGTH ( [B] ), 1 ), "Value_B", PATHITEM ( [B], [Value] ) ), "ValueB", [Value_B] ) RETURN CONCATENATEX ( EXCEPT ( a, b ), [ValueA], "|" )Output
Best Regards!
Yolo Zhu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
7 Replies
- rajendraongole1Super User
Hi rlfRodrigo -To find the difference between elements of two strings in DAX and produce
create a below calculated column
Difference =VAR ListA = SUBSTITUTE(PIPE[A], "|", ",")VAR ListB = SUBSTITUTE(PIPE[B], "|", ",")VAR TableA = ADDCOLUMNS(SELECTCOLUMNS(GENERATESERIES(1, LEN(ListA)),"CharA", MID(ListA, [Value], 1)),"IsInB", SEARCH([CharA], ListB, 1, 0))VAR Result = CONCATENATEX(FILTER(TableA, [IsInB] = 0),[CharA],"|")RETURN ResultHope it helps
Did I answer your question? Mark my post as a solution! This will help others on the forum!
Appreciate your Kudos!! - rlfRodrigoFrequent Visitor
That works perfectly when I have 1 character per delimiter, but how can I modify it to get multiple characters? (the idea is to use it with series of 7 characteres)
Like this:
In this case, C would be:
CC|AA|22
BB|GG|77
The modification I got half working was this one:But apparently it removes any character found within B:
- AnonymousNot applicable
Hi,
Thanks for the solution rajendraongole1 provided, and i want to offer some more information for user to rerfer to.
hello rlfRodrigo , you can refer to the following calculated column.
Column = VAR a = SELECTCOLUMNS ( ADDCOLUMNS ( GENERATESERIES ( 1, PATHLENGTH ( [A] ), 1 ), "Value_A", PATHITEM ( [A], [Value] ) ), "ValueA", [Value_A] ) VAR b = SELECTCOLUMNS ( ADDCOLUMNS ( GENERATESERIES ( 1, PATHLENGTH ( [B] ), 1 ), "Value_B", PATHITEM ( [B], [Value] ) ), "ValueB", [Value_B] ) RETURN CONCATENATEX ( EXCEPT ( a, b ), [ValueA], "|" )Output
Best Regards!
Yolo Zhu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
- rlfRodrigoFrequent Visitor
Thank you Anonymous, that worked perfectly!
- Ashish_MathurSuper User
Hi,
Just in case you are interested, this M code works
let Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content], #"Added Custom" = Table.AddColumn(Source, "Custom", each Text.Combine(List.Difference(Text.Split([Text1],"|"),Text.Split([Text2],"|")),"|")) in #"Added Custom"Hope this helps.
- rlfRodrigoFrequent Visitor
I thought about using M but both of my columns came from another calculated column so it wasnt possible without export/import
- AnonymousNot applicable
Hi rlfRodrigo
You can refer to the solution I offered above. it gives the result you want.
Best Regards!
Yolo Zhu