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.
- Paste the whole column. One number per line, or comma separated — spaces and dashes inside a number are fine.
- Pick the country the local numbers belong to.
- Choose 9XXXXXXXX to strip the zero and nothing else, or +2609XXXXXXXX to get full international format.
- 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.
- Italy keeps its zero.
+39 06 XXXXXXXis correct. Strip the zero and the number is unreachable. - The United States, Canada and the rest of the +1 zone have no trunk prefix. A leading
1is the country code, not a prefix to delete. - Russia and Kazakhstan use 8, not 0. So do Belarus and Lithuania. Hungary uses 06.
- Spain, Portugal, Denmark, Norway, Poland and Czechia abolished theirs — there is nothing to remove.
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:
- Format the column as Text before pasting or typing.
- When importing a CSV, use Data → From Text/CSV and set the phone column's type to Text in the import preview.
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.