Bulk phone number formatter

Paste a column of phone numbers and convert the whole list at once — drop the leading zero, add the country code, or export E.164, WhatsApp links and tel: URIs. Works for 180+ countries and applies each country's real rule, not a blanket "delete the 0".

Paste numbers here
0Pasted
0Converted
0Repeats
0Flagged
Country and direction

Used for numbers written in local form. Anything that already starts with + or 00 keeps its own country.

These numbers are
Output format
Separated by
Clean up

Repeats are found after converting, so 09X XXX XXXX and +260 9X XXX XXXX count as one number when the digits match.

Result —

What this is for

Bulk SMS and messaging

Almost every SMS gateway and the WhatsApp Business API reject numbers with a national trunk prefix. They want E.164: +2609XXXXXXXX.

CRM and contact imports

Salesforce, HubSpot and Google Contacts deduplicate far better when every number is stored one way.

Repairing exported data

Spreadsheets mangle phone columns. The flagged counter tells you which rows lost a digit before you send anything.

Click-to-chat links

Turn a list into wa.me links or tel: URIs for a website, email signature or support desk.

Removing the leading zero, in bulk

This is the job most people arrive with. A number stored locally as 09X XXX XXXX needs to become 9XXXXXXXX or +2609XXXXXXXX before another system will accept it.

  1. Paste the whole column. One number per line, or comma separated — spaces and dashes inside a number are fine.
  2. Pick the country the local numbers belong to.
  3. Choose 9XXXXXXXX to strip the zero and nothing else, or +2609XXXXXXXX to get full international format.
  4. Check the Flagged counter, then copy.

Need the result as one comma-separated line for a "To" field, or split back into rows? Send it through the list converter. To strip repeats from any list, not just numbers, see all tools.

Why "just remove the 0" is the wrong rule

It works in most of the world and fails badly in the rest, which is exactly the kind of bug that goes unnoticed — a wrongly formatted number does not throw an error, it just never reaches anyone.

This tool holds the trunk prefix for each country and only removes it when that country actually has one and the number actually begins with it. Choose Italy and your zeros stay.

The Excel and Google Sheets formulas

If you would rather do it in the spreadsheet, these are the formulas. They assume the number is in A2.

Remove the leading zero

Works in every version of Excel:

=IF(LEFT(TRIM(A2),1)="0", MID(TRIM(A2),2,LEN(TRIM(A2))-1), TRIM(A2))

Remove the zero and add the country code

Replace 260 with your own country calling code:

="+260" & IF(LEFT(TRIM(A2),1)="0", MID(TRIM(A2),2,LEN(TRIM(A2))-1), TRIM(A2))

Strip spaces, dashes and brackets first

Real exports are messy. Nest this inside the formulas above in place of TRIM(A2):

SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TRIM(A2)," ",""),"-",""),"(",""),")","")

Google Sheets, or Excel 365 with regex functions

Much shorter, and strips every non-digit in one go:

="+260" & REGEXREPLACE(REGEXREPLACE(TO_TEXT(A2),"\D",""),"^0","")

The trap that ruins phone columns

Excel deletes leading zeros before you get a chance to use any formula. A cell holding 09XXXXXXXX is read as a number, and the zero is gone the moment the file opens. Two ways to avoid it:

The little green triangle Excel shows on those cells means "number stored as text". For phone numbers that is correct — leave it alone.

Questions

What is E.164?

The international standard for telephone numbers: a +, the country calling code, then the national significant number, with no spaces or punctuation, and never more than 15 digits in total. +2609XXXXXXXX is E.164 for a Zambian mobile. It is what almost every SMS gateway, CRM and messaging API expects, and it is unambiguous anywhere in the world.

Does this check whether the numbers are real?

No, and be wary of any free tool that claims to. This is a formatter. It checks that a number is a plausible length for its country and flags the ones that are not, which catches truncated and mistyped entries. Whether a number is actually assigned and reachable is something only the carrier knows.

Can I paste numbers from several countries at once?

Yes. Anything already written with + or 00 keeps its own country, and the counter tells you how many countries it found. Numbers written in local form are assumed to belong to the country you picked, because there is no way to tell otherwise.

What about extensions?

Extensions written as x123, ext 123 or #123 are detected and removed by default, because most systems will not accept them. Turn on Keep extensions to preserve them — in a tel: URI they become the standard ;ext=123.

Are my contacts uploaded?

No. A contact list is personal data belonging to other people, so this matters more here than on the other tools. The conversion runs entirely in your browser: nothing is uploaded, stored or logged. Open your browser's network tab and watch if you like. The privacy policy sets out the detail.

If your team formats numbers before every bulk message or contact import, Mbule.Tech can build a tool that does it as part of the import.