Phone numbers arrive in every shape. You see 5551234567, (555) 123-4567, 555.123.4567, and +1 555-123-4567 in the same column. A CRM export or a signup form never cleans them for you.
You want one consistent format. That is harder than it sounds, because you first have to strip every input down to raw digits, then rebuild it.
The Old Way (Strip, Then Rebuild)
First you delete everything that is not a digit. REGEXREPLACE handles that part cleanly.
=REGEXREPLACE(A2, "[^0-9]", "")Now you have raw digits. To reformat them as (XXX) XXX-XXXX you slice the string apart and glue it back together.
=LET(d, REGEXREPLACE(A2,"[^0-9]",""), "(" & MID(d,1,3) & ") " & MID(d,4,3) & "-" & MID(d,7,4))This works only when every number has exactly ten digits. A leading country code, a missing area code, or an extension breaks the MID positions. Then you are back to patching the formula.
The FITS Way (Describe the Format)
FITS puts an AI formula inside Google Sheets. You describe the output format in plain English and it handles the stripping and rebuilding for you.
=FITS("Format this phone number as (XXX) XXX-XXXX: " & A2)Because it reads the number rather than counting character positions, a country code or stray text does not derail it. Want a different style? Change the sentence.
=FITS("Format this phone number in E.164 international format, like +15551234567: " & A2)When to Use Each
If every number in the column is already exactly ten clean digits, the native REGEXREPLACE and MID combo is instant and free. Reach for FITS when the formats are mixed, some rows carry country codes, and rebuilding character positions keeps breaking. This is the same idea behind removing special characters and normalizing inconsistent data. For the full list of jobs this replaces, see automating Google Sheets tasks you used to need regex for.
Clean Phone Numbers Without the Formula Puzzle
FITS standardizes a messy column with one plain-English instruction. No stripping, slicing, or rebuilding by hand. Free tier included.