This time we’re going bigger than ever. Fabric, Power BI, SQL, AI and more. We're covering it all. You won't want to miss it.
Learn moreLevel up your Power BI skills this month - build one visual each week and tell better stories with data! Get started
I have data that contains multiple values within a single cell. I am attempting to separate this data, but occasionally there are additional semi colons throughout these values that are not delimiters. I would like to replace all semi colons with commas, ONLY when the semi colon is inside parentheses. Any suggestions?
Solved! Go to Solution.
Based on your description, I created data to reproduce your scenario. The pbix file is attached in the end.
Hi,
Share some data to work with and show the expected result.
Thanks for the response and apologizes for not being clear in my initial post. The entire column contains cells similar to this:
Person A (Company XYZ); Person B (Company 123); Person C (Company A-1; Accounting); Person D (Company B12)
I would like to replace the instances where the semi-colon is inside the parentheses with a comma, to look like this.
Person A (Company XYZ); Person B (Company 123); Person C (Company A-1, Accounting); Person D (Company B12)
pls try this
= Text.Combine(
List.Transform(
Splitter.SplitTextByAnyDelimiter({"("})([Column 1]),
(x)=> [
t1 = Text.PositionOf( x,";",Occurrence.First),
t2 = Text.PositionOf( x,")",Occurrence.First),
repl = if t1 < t2 and t1<> -1 and t2<> -1 then Text.Replace(x,Text.Range(x,t1,1),",") else x ][repl]),"(")
Unfortunately that didn't work. It returned the following error:
"Expression.Error: There is an unknown identifier. Did you use the [field] shorthand for a _[field] outside of an 'each' expression?"
Based on your description, I created data to reproduce your scenario. The pbix file is attached in the end.
This worked! Thank you, so much.
= Table.AddColumn(#"Changed Type", "Custom", each Text.Combine(
List.Transform(
Text.Split([Column 1],"("),
(x)=> [
t1 = Text.PositionOf( x,";",Occurrence.First),
t2 = Text.PositionOf( x,")",Occurrence.First),
repl = if t1 < t2 and t1<> -1 and t2<> -1 then Text.ReplaceRange(x,t1,1,",") else x ][repl]),"("))
or this code
Text.Combine(
List.Transform(
Text.Split([Column 1],"("),
(x)=> [
t1 = Text.PositionOf( x,";",Occurrence.First),
t2 = Text.PositionOf( x,")",Occurrence.First),
repl = if t1 < t2 and t1<> -1 and t2<> -1 then Text.Replace(x,Text.Range(x,t1,1),",") else x ][repl]),"(")
sorry this code corrected
Text.Combine(
List.Transform(
Text.Split([Column 1],"("),
(x)=> [
t1 = Text.PositionOf( x,";",Occurrence.First),
t2 = Text.PositionOf( x,")",Occurrence.First),
repl = if t1 < t2 and t1<> -1 and t2<> -1 then Text.ReplaceRange(x,t1,1,",") else x ][repl]),"(")
It is still giving me the same expression error.
if there is only a semicolon inside the parentheses then it is simple.
show an example so we can help you
In Power query replace ";" with ,
See screen print
I am an unpaid volunteer helper seeking kudos.
Please show your thanks by clicking the Accept Solution button and the thumbs up button to leave kudos.
Thanks
Check out the April 2026 Power BI update to learn about new features.
Sign up to receive a private message when registration opens and key events begin.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
| User | Count |
|---|---|
| 30 | |
| 23 | |
| 23 | |
| 17 | |
| 15 |
| User | Count |
|---|---|
| 62 | |
| 36 | |
| 30 | |
| 25 | |
| 21 |