Lọc trùng và chuẩn hoá số điện thoại trong Excel: 7 thao tác cho danh sách khách hàng
Gộp vài file khách hàng lại với nhau, bạn sẽ gặp đủ kiểu số điện thoại: chỗ ghi +84, chỗ có dấu chấm, chỗ mất số 0 ở đầu, chỗ vẫn là đầu số 11 số từ trước năm 2018. Khi số chưa cùng một dạng, lọc trùng trong Excel sẽ sót, và sale có thể gọi một cửa hàng hai lần. Bài này hướng dẫn 7 thao tác để đưa danh sách về sạch, kèm công thức chép dùng được ngay trên Excel và Google Sheet.
Vì sao danh sách số điện thoại hay bị trùng và lộn xộn?
Danh sách tự thu thập thường gộp từ nhiều nguồn: file quét theo từng phường, form đăng ký, ghi chép của từng sale. Mỗi nguồn ghi số một kiểu:
- Khác định dạng: "+84 912 345 678" và "0912.345.678" là một số, nhưng Excel coi là hai giá trị.
- Mất số 0: bấm đúp mở file CSV, Excel coi cột SĐT là số và bỏ số 0 ở đầu.
- Đầu số cũ: di động 11 số đã chuyển sang 10 số từ 15/9/2018; số bàn đổi mã vùng năm 2017 (Hà Nội 04 thành 024, TP.HCM 08 thành 028).
- Chuỗi cửa hàng: nhiều chi nhánh dùng chung một số tổng đài.
Vì vậy hãy chuẩn hoá trước, lọc trùng sau. Các công thức bên dưới dùng bố cục trang tính sau:
| Cột | Nội dung |
|---|---|
| A, B, C | Tên, Địa chỉ, SĐT gốc (không sửa tay) |
| D, E | SĐT chỉ còn chữ số, SĐT đầu 0 |
| F | SĐT chuẩn, dùng để lọc trùng và gọi |
| G, H, I | Loại số, Lần xuất hiện, Trạng thái so với danh sách cũ |
Lưu ý: máy dùng định dạng vùng Việt Nam có thể cần dấu chấm phẩy (;) thay dấu phẩy (,) giữa các đối số trong công thức.
Thao tác 1: giữ số 0 ở đầu khi mở file CSV
Đừng bấm đúp để mở file CSV. Trong Excel, vào Data > From Text/CSV, chọn file, ở File Origin chọn 65001: Unicode (UTF-8), ở Data Type Detection chọn Do not detect data types, rồi bấm Load. Số 0 được giữ nguyên.
- Excel Microsoft 365 bản mới: File > Options > Data, bỏ tích Remove leading zeros and convert to a number.
- Trước khi dán số mới, chọn cột và đặt Format Cells > Text.
- Trên Google Sheet, dùng Tệp > Nhập và bỏ tích "Chuyển đổi văn bản thành số, ngày và công thức".
- Số 0 đã mất rồi thì công thức ở thao tác 3 sẽ thêm lại.
Thao tác 2–3: đưa mọi số về một dạng, đổi +84/84 về 0
Thao tác 2, bỏ ký tự thừa. Ô D2 (Excel và Google Sheet) bỏ dấu cách, dấu cách không ngắt hay gặp khi chép từ web (CHAR(160)), dấu chấm, gạch ngang, ngoặc và dấu cộng:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C2&""," ",""),CHAR(160),""),".",""),"-",""),"(",""),")",""),"+","")
Trên Google Sheet có cách ngắn hơn, bỏ mọi ký tự không phải chữ số: =REGEXREPLACE(C2&"","[^0-9]","")
Thao tác 3, đưa về đầu 0. Ô E2 xử lý ba trường hợp: số tổng đài 1800/1900 giữ nguyên, số có mã quốc gia 84 (từ 11 chữ số trở lên) đổi thành 0, số bị mất số 0 thì thêm lại:
=IF(D2="","",IF(OR(LEFT(D2,4)="1800",LEFT(D2,4)="1900"),D2,IF(AND(LEFT(D2,2)="84",LEN(D2)>=11),"0"&MID(D2,3,20),IF(LEFT(D2,1)="0",D2,"0"&D2))))
Điều kiện độ dài là cần thiết: số di động đầu 084 bị mất số 0 chỉ còn 9 chữ số, không được nhầm với mã quốc gia 84.
Thao tác 4: đổi đầu số 11 số cũ sang 10 số
Tạo một trang tính tên DauSo, định dạng cột A và B là Text trước khi gõ, rồi nhập bảng chuyển đổi do các nhà mạng áp dụng từ ngày 15/9/2018 (theo công bố của Bộ Thông tin và Truyền thông):
| Nhà mạng | Đầu số cũ (11 số) | Đầu số mới (10 số) |
|---|---|---|
| Viettel | 0162, 0163, 0164, 0165, 0166, 0167, 0168, 0169 | 032, 033, 034, 035, 036, 037, 038, 039 |
| MobiFone | 0120, 0121, 0122, 0126, 0128 | 070, 079, 077, 076, 078 |
| VinaPhone | 0123, 0124, 0125, 0127, 0129 | 083, 084, 085, 081, 082 |
| Vietnamobile | 0186, 0188 | 056, 058 |
| Gmobile (Gtel) | 0199 | 059 |
Trên trang DauSo, mỗi cặp một dòng (cột A cũ, cột B mới, dòng 2 đến 22). Ô F2 chỉ đổi số 11 chữ số bắt đầu bằng 01; số bàn 024…, 028… giữ nguyên:
=IF(AND(LEN(E2)=11,LEFT(E2,2)="01"),IFERROR(VLOOKUP(LEFT(E2,4),DauSo!$A$2:$B$22,2,FALSE)&MID(E2,5,20),E2),E2)
Excel 365 có thể dùng XLOOKUP thay VLOOKUP. Ví dụ kết quả ở cột F:
| Số gốc | Kết quả cột F | Đã xử lý gì |
|---|---|---|
| +84 912 345 678 | 0912345678 | Bỏ dấu cách, +84 thành 0 |
| 912345678 | 0912345678 | Thêm lại số 0 Excel đã bỏ |
| 01662 345 678 | 0362345678 | Đầu số cũ 0166 thành 036 |
| (024) 3823 4567 | 02438234567 | Số bàn, giữ 11 chữ số |
| 1800 1234 | 18001234 | Tổng đài, không thêm số 0 |
Thao tác 5: tách số di động, số bàn và tổng đài
Cột G là cột "loại số điện thoại" mà bài thu thập data Google Maps có hợp pháp không khuyên nên quản lý, vì số tổng đài doanh nghiệp và số di động của chủ hộ kinh doanh cần mức thận trọng khác nhau:
=IF(F2="","",IF(OR(LEFT(F2,4)="1800",LEFT(F2,4)="1900"),"Tổng đài",IF(LEFT(F2,2)="02","Số bàn",IF(AND(LEN(F2)=10,OR(LEFT(F2,2)="03",LEFT(F2,2)="05",LEFT(F2,2)="07",LEFT(F2,2)="08",LEFT(F2,2)="09")),"Di động","Cần kiểm tra"))))
Dòng "Cần kiểm tra" thường là số thiếu chữ số hoặc hai số dính trong một ô; hãy xem lại bằng mắt.

Thao tác 6: lọc trùng số điện thoại
Sao chép trang tính để dự phòng, rồi chọn một trong ba cách:
- Đánh dấu, chưa xoá. Ô H2:
=IF(F2="","",COUNTIF($F$2:F2,F2)). Từ 2 trở lên là bản trùng; lọc ra xem trước rồi mới xoá. - Xoá luôn. Chọn cả bảng, vào Data > Remove Duplicates (Dữ liệu > Loại bỏ Trùng lặp), chỉ tích cột F. Excel giữ dòng trên cùng, nên sắp xếp trước theo cột muốn ưu tiên.
- Lấy danh sách số duy nhất. Excel 365 và Google Sheet:
=UNIQUE(F2:F1000). Trên Google Sheet còn có Dữ liệu > Dọn dẹp dữ liệu > Xóa bản sao.
Một số dùng cho nhiều chi nhánh là các điểm bán thật chung một đầu mối. Giữ một dòng để gọi, gom các địa chỉ vào cột ghi chú (Excel 365, Google Sheet): =TEXTJOIN(" | ",TRUE,FILTER($B$2:$B$1000,$F$2:$F$1000=F2)).
Thao tác 7: gộp danh sách mới mà không gọi lại người đã từ chối
Mỗi lần thêm danh sách mới, hãy so với danh sách đã liên hệ, nhất là những nơi đã nói "đừng gọi nữa". Giả sử trang DaLienHe có cột A là SĐT chuẩn 10 số và cột B là trạng thái (Đã gọi, Hẹn lại, Từ chối). Ô I2 ở danh sách mới:
=IF(COUNTIFS(DaLienHe!$A:$A,F2,DaLienHe!$B:$B,"Từ chối")>0,"KHÔNG GỌI",IF(COUNTIF(DaLienHe!$A:$A,F2)>0,"Đã có","Mới"))
Bỏ các dòng "KHÔNG GỌI", trả dòng "Đã có" về sale đang phụ trách, chỉ chia dòng "Mới". Luật Bảo vệ dữ liệu cá nhân số 91/2025/QH15 cho người nhận quyền phản đối, Nghị định 91/2020/NĐ-CP có quy định về việc từ chối nhận quảng cáo; nên giữ thêm cột trạng thái đồng ý và lịch sử tương tác như bài pháp lý gợi ý.
Nói gì khi gọi và ghi kết quả vào cột nào: xem kịch bản gọi điện chào hàng cửa hàng, đại lý.
Để phần mềm làm sẵn khi lấy danh sách từ Google Maps
Nếu danh sách đến từ Google Maps, nhiều bước trên được làm ngay lúc quét. Phần mềm quét data Google Maps DataMap đưa số về đầu 0 (số +84 thành 0, tổng đài 1800/1900 giữ nguyên), bỏ dòng trùng theo mã địa điểm và theo tên cùng địa chỉ, nên quét nhiều từ khóa trong một phường thì mỗi cửa hàng vẫn một dòng. Xem bài quét SĐT Google Map hàng loạt.
- Chỉ lấy nơi có SĐT và Bỏ số cố định & 1800/1900: bật khi chỉ cần số di động.
- File BỊ LOẠI: file riêng có ghi lý do để bạn tự kiểm tra.
- Google Sheet giữ nguyên số 0; file CSV trên máy thì mở theo thao tác 1.
Gom chi nhánh chung số và so với danh sách đã gọi vẫn là việc của bạn. Xem trước bố cục cột trong file kết quả mẫu (số đã che bớt, tự gõ vài số để thử công thức) hoặc ở bài cách lấy dữ liệu từ Google Map.


Dùng thử đủ tính năng 1 ngày, tối đa 200 số điện thoại. Dùng tiếp: xem bảng giá: 789.000đ cho 1 tháng hoặc 1.999.000đ cho 12 tháng.
Câu hỏi thường gặp
Vì sao mở file CSV bằng Excel thì số điện thoại mất số 0 ở đầu?
Bấm đúp mở CSV, Excel coi chuỗi toàn chữ số là số nên bỏ số 0. Hãy mở bằng Data > From Text/CSV, chọn Do not detect data types; số 0 đã mất thì dùng công thức ở thao tác 3.
Lọc trùng số điện thoại trên Google Sheet thế nào?
Chuẩn hoá số bằng REGEXREPLACE và công thức đưa về đầu 0, rồi dùng Dữ liệu > Dọn dẹp dữ liệu > Xóa bản sao trên cột SĐT chuẩn, hoặc hàm UNIQUE nếu muốn giữ dữ liệu gốc.
Hai cửa hàng khác tên nhưng trùng số điện thoại thì xử lý sao?
Thường là chuỗi hoặc chi nhánh dùng chung số. Giữ một dòng để gọi, gom các địa chỉ còn lại vào cột ghi chú bằng TEXTJOIN và FILTER.
Số 11 số đầu 01x còn gọi được không?
Không nên dùng nữa: các số này đã chuyển sang 10 số từ 15/9/2018 và thời gian quay số song song đã kết thúc. Hãy đổi theo bảng ở thao tác 4 trước khi gọi.