Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Hello,
I've got a text column with phone numbers in the format "##########" and I want to convert it to the format "(###) ###-####". I've seen another thread that talks about splitting the column and recombining into another column, but I want to avoid that many transformations. I can't use DAX (I'm consuming this dataset elsewhere).
I might be trying to be too clever about it, but I feel like this is possible using a combination of Table.TransformColumns, Text.Format, and Text.ToList like this:
= Table.TransformColumns(#"Previous Step", {{"Unformatted Phone Number Column", each Text.Format("(#{1}#{2}#{3}) #{4}#{5}#{6}-#{7}#{8}#{9}#{10}",Text.ToList(_), type text}}))
I feel like this is close, but I can't quite work out the syntax. Any tips?
Solved! Go to Solution.
hello, @Anonymous
= Table.TransformColumns(
#"Previous Step",
{"Unformatted Phone Number Column",
(x) => Number.ToText(Number.From(x), "(000) 000-0000")}
)
Thank you both! Both good options, but I went with @AlienSx since it seems a little cleaner
hello, @Anonymous
= Table.TransformColumns(
#"Previous Step",
{"Unformatted Phone Number Column",
(x) => Number.ToText(Number.From(x), "(000) 000-0000")}
)
Hi @Anonymous
You could try the following transformation:
= Table.TransformColumns( #"Previous Step" , {{ "Custom", each "(" & Text.Range( _ , 0, 3 ) & ") " & Text.Range( _ , 3, 3 ) & "-" & Text.Range( _ , 6, 4 ) , type text}})This is a good resource for learning about all the Text functions in Power BI.
Text Functions in Power Query M (150+ Examples) - BI Gorilla
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
Check out the November 2025 Power BI update to learn about new features.