Chuẩn hoá họ tên tiếng Việt trong bảng tính gồm bốn việc: đưa về cùng kiểu viết hoa, bỏ khoảng trắng thừa, tách phần xưng hô ra khỏi tên, và đưa mọi chữ có dấu về cùng một bảng mã. Ba việc đầu dễ thấy bằng mắt. Việc thứ tư thì không: hai ô cùng hiện "Nguyễn Thị Hoà" giống hệt nhau trên màn hình, nhưng hàm so khớp vẫn báo khác, vì một ô lưu chữ có dấu theo kiểu dựng sẵn, ô kia theo kiểu tổ hợp.
Bài này dành cho người giữ danh sách học viên, nhân viên, khách hàng, hội viên — bất cứ bảng nào có cột họ tên gom từ nhiều người nhập. Mỗi phần có công thức Excel, cách nhờ AI hỗ trợ mà không phải đưa danh sách tên thật ra ngoài, và những trường hợp không nên để máy tự quyết.
Cột họ tên lộn xộn theo những kiểu nào
Lướt qua một cột họ tên gom từ biểu mẫu trực tuyến, sổ ghi tay và tệp của đồng nghiệp, bạn sẽ gặp gần như đủ các kiểu sau. Có ô viết hoa toàn bộ vì người nhập bật phím viết hoa, có ô viết thường toàn bộ vì gõ nhanh trên điện thoại. Có ô thừa dấu cách giữa họ và tên đệm, có ô thừa dấu cách ở cuối mà mắt thường không thấy.
Nhiều ô kèm xưng hô: "chị Lan", "anh Tuấn kế toán", "cô Hằng (mẹ bé Na)". Một số ô không dấu vì người nhập dùng bàn phím không có bộ gõ. Một số ô lại có chữ lạ kiểu "Nguy?n" hoặc ký tự vô nghĩa, dấu hiệu dữ liệu gốc được soạn bằng bảng mã cũ như TCVN3 hay VNI rồi mở bằng phông Unicode.
Từng kiểu riêng lẻ thì không nghiêm trọng, nhưng cộng lại sẽ làm hỏng mọi việc phía sau: sắp xếp theo tên ra thứ tự sai, tìm khách không thấy, đếm số người bị thừa, thư mời in ra "Kính gửi: chị lan" trông thiếu chuyên nghiệp. Chuẩn hoá cột họ tên thường là việc đầu tiên nên làm trước khi xoá trùng hay ghép bảng.
Trước khi bắt đầu, sao lưu bản gốc và thêm một cột mới "họ tên chuẩn" cạnh cột gốc. Không sửa đè trực tiếp lên cột gốc, vì có những ô bạn sẽ cần quay lại xem người nhập ban đầu viết gì.
Viết hoa đúng và bỏ khoảng trắng thừa
TRIM bỏ khoảng trắng thừa thông thường. Hàm =TRIM(A2) bỏ khoảng trắng ở đầu, ở cuối và rút các khoảng trắng liên tiếp giữa các từ về một dấu cách. Đây là bước luôn làm đầu tiên.
Khoảng trắng không ngắt dòng cần xử lý riêng. Văn bản dán từ trang web hay email đôi khi chứa ký tự khoảng trắng không ngắt dòng, mã 160, mà TRIM không bỏ được. Dùng =TRIM(SUBSTITUTE(A2,CHAR(160)," ")) để đổi nó thành dấu cách thường rồi mới TRIM. Hàm CLEAN bỏ thêm các ký tự điều khiển không in được, như ký tự xuống dòng lọt vào khi dán từ ô nhiều dòng.
PROPER viết hoa chữ cái đầu mỗi từ. Họ tên người Việt viết hoa chữ đầu của mọi từ, nên =PROPER(TRIM(A2)) hợp với phần lớn trường hợp: "nguyễn THỊ hoa" thành "Nguyễn Thị Hoa". Hàm này xử lý được cả chữ Đ và các nguyên âm có dấu khi văn bản ở dạng dựng sẵn.
Kiểm những tên đặc biệt sau PROPER. Tên người dân tộc thiểu số có dấu nháy đơn, tên có gạch nối, tên người nước ngoài có cách viết hoa riêng cần soát tay. Nếu sau PROPER bạn thấy chữ hoa nhảy vào giữa từ, ngay sau một chữ có dấu, nhiều khả năng ô đó đang lưu dấu theo kiểu tổ hợp, xem phần dưới.
Google Sheets có cùng hàm. TRIM, CLEAN, PROPER, SUBSTITUTE trong Google Sheets dùng giống Excel. Công thức trong bài viết theo bản tiếng Anh, dấu phẩy; máy cài vùng Việt Nam thường dùng dấu chấm phẩy.
Chữ có dấu nhìn giống mà không khớp: Unicode dựng sẵn và tổ hợp
Đây là lỗi khó chịu nhất vì không nhìn thấy. Chuẩn Unicode cho phép viết một chữ có dấu theo hai cách: dựng sẵn, mỗi chữ có dấu là một ký tự riêng; và tổ hợp, chữ cái gốc cộng thêm một hoặc hai ký tự dấu đi kèm. Trên màn hình hai cách hiện y hệt. Với máy tính, đó là hai chuỗi ký tự khác nhau, nên VLOOKUP, COUNTIF, xoá trùng đều coi là khác.
Cách phát hiện đơn giản: đặt =LEN(A2) cạnh cột tên. Hai ô cùng hiện "Hoà" mà một ô cho độ dài 3, ô kia cho 4 hoặc 5, thì ô dài hơn đang ở dạng tổ hợp. Văn bản tổ hợp thường đến từ một số bộ gõ đặt chế độ tổ hợp, từ tên tệp trên máy Mac, hoặc từ dữ liệu xuất ra bởi một số phần mềm.
Excel không có hàm sẵn để đổi tổ hợp sang dựng sẵn. Cách thông dụng ở văn phòng Việt Nam là dùng công cụ chuyển mã đi kèm bộ gõ Unikey: sao chép cả cột, chọn nguồn là Unicode tổ hợp, đích là Unicode, chuyển qua bộ nhớ tạm rồi dán lại dạng giá trị. Cùng công cụ đó chuyển được văn bản bảng mã cũ TCVN3 hoặc VNI sang Unicode, chữa kiểu lỗi "Nguy?n" nói ở trên, với điều kiện bạn đoán đúng bảng mã nguồn.
Nếu biết chút Python, chuẩn hoá dạng NFC trong thư viện unicodedata làm việc này cho cả tệp một lần. Bạn có thể nhờ AI viết đoạn mã ngắn đọc tệp CSV, chuẩn hoá NFC cột họ tên và ghi ra tệp mới; đọc hiểu từng dòng trước khi chạy, và chạy trên bản sao. Sau khi chuyển, đo lại LEN để chắc các ô cùng tên đã cùng độ dài.
Tách xưng hô và ghi chú ra khỏi tên
Ô "chị Lan (mẹ bé Na)" chứa ba loại thông tin: xưng hô, tên, quan hệ. Để nguyên thì không sắp xếp hay tra cứu được. Quy trình gợi ý:
- Lọc cột họ tên tìm các từ xưng hô hay gặp ở đầu ô: anh, chị, cô, chú, bác, em, ông, bà, thầy, và các chữ tiếng Anh như Mr, Ms.
- Thêm cột "xưng hô" và cột "ghi chú". Chuyển phần xưng hô và phần trong ngoặc sang hai cột này. Excel 365 có TEXTBEFORE và TEXTAFTER giúp lấy phần trước hoặc sau dấu ngoặc; bản cũ dùng FIND kết hợp LEFT và MID.
- Nhờ AI viết công thức bằng cách mô tả: "Cột A chứa họ tên khách, có ô bắt đầu bằng từ xưng hô như anh, chị, cô, chú, có ô kèm ghi chú trong ngoặc tròn. Viết công thức cho cột B lấy từ xưng hô nếu có, cột C lấy phần tên không gồm xưng hô và ngoặc, cột D lấy phần trong ngoặc. Excel 365." Kèm năm ví dụ tên giả.
- Cẩn thận với tên thật trùng chữ xưng hô. "Bà" hay "Cô" hiếm khi là tên, nhưng một số từ như "Em" có thể nằm trong tên người. Chỉ coi là xưng hô khi từ đó đứng đầu ô và sau nó còn ít nhất một từ nữa, rồi soát tay danh sách bị tách.
- Không suy giới tính từ xưng hô hay từ tên đệm "Thị", "Văn" rồi điền vào cột giới tính. Suy như vậy sai ở nhiều trường hợp và gán thông tin cá nhân không do người đó cung cấp. Nếu cần cột giới tính, hãy hỏi trực tiếp.
Phần tên còn lại sau khi tách đem qua bước TRIM và PROPER ở trên là ra cột họ tên sạch.
Tách họ, tên đệm và tên: làm được gì, không làm được gì
Danh sách lớp, bảng lương thường cần sắp xếp theo tên (chữ cuối) theo thói quen Việt Nam. Bảng dưới tóm tắt công thức và giới hạn của từng phần.
| Phần | Công thức gợi ý | Giới hạn |
|---|---|---|
| Tên (chữ cuối) | Excel 365: =TEXTAFTER(A2," ",-1). Bản cũ: =TRIM(RIGHT(SUBSTITUTE(A2," ",REPT(" ",100)),100)) | Ô chỉ có một chữ sẽ báo lỗi ở TEXTAFTER, cần bọc IFERROR trả về chính ô đó |
| Họ (chữ đầu) | Excel 365: =TEXTBEFORE(A2," "). Bản cũ: =LEFT(A2,FIND(" ",A2&" ")-1) | Họ ghép như Tôn Nữ, Nguyễn Phúc, hoặc người mang cả họ cha và họ mẹ sẽ bị cắt sai |
| Tên đệm | Phần còn lại giữa họ và tên, lấy bằng MID theo độ dài họ và tên | Phụ thuộc hai cột trên, sai theo nếu họ bị tách sai |
| Sắp xếp theo tên | Sắp theo cột tên, rồi theo cột họ tên đầy đủ | Không có công thức nào biết chắc đâu là họ ghép, cần người soát |
Vì giới hạn đó, nên giữ cột họ tên đầy đủ làm cột chính, các cột tách chỉ là cột phụ để sắp xếp. Khi in giấy tờ, luôn dùng họ tên đầy đủ. Nếu bảng do chính người được ghi tên tự khai qua biểu mẫu, cách tốt nhất là có sẵn hai ô "họ và tên đệm" và "tên" ngay từ đầu.
Kiểm lại và giữ an toàn danh sách tên
Sau khi có cột họ tên chuẩn, kiểm theo ba cách. Một là đếm: số ô không trống trong cột chuẩn phải bằng số ô không trống trong cột gốc. Hai là so độ dài: lọc các ô có LEN của cột chuẩn ngắn hơn hẳn cột gốc, vì đó có thể là ô bị cắt mất chữ. Ba là đọc lướt: sắp xếp theo cột chuẩn và nhìn từ đầu đến cuối, những ô lạ sẽ lộ ra ở đầu hoặc cuối danh sách.
Về AI: bạn cần nó để viết công thức, giải thích lỗi mã dấu, gợi ý danh sách từ xưng hô cần lọc. Bạn không cần đưa cả danh sách tên thật cho nó. Họ tên đi cùng số điện thoại, địa chỉ, lớp học hay phòng ban là dữ liệu cá nhân; hãy làm ví dụ bằng tên giả có cùng kiểu lỗi. Nếu nơi làm việc có công cụ AI được duyệt để xử lý dữ liệu nội bộ, vẫn nên che bớt các cột không cần cho việc chuẩn hoá tên.
Bảng đã sạch tên sẽ làm các bước sau trơn tru hơn hẳn: xoá trùng chính xác hơn, ghép với bảng khác bằng họ tên cộng ngày sinh khớp hơn, thư mời in tên đúng. Ghi lại các bước đã làm vào một trang tính "nhật ký" để lần sau nhập thêm dữ liệu mới, bạn hay đồng nghiệp làm lại đúng các bước đó.
Câu hỏi thường gặp
Vì sao hai ô cùng tên giống hệt nhau mà VLOOKUP không tìm thấy?
Thường do khoảng trắng thừa, khoảng trắng không ngắt dòng, hoặc hai ô lưu chữ có dấu theo hai kiểu Unicode khác nhau. Đo độ dài bằng hàm LEN để biết; khác độ dài là khác chuỗi dù trông giống nhau.
Hàm PROPER có dùng được cho tên tiếng Việt không?
Dùng được với phần lớn họ tên tiếng Việt vì tên người Việt viết hoa chữ đầu mọi từ. Cần soát tay tên có dấu nháy, gạch nối, tên nước ngoài, và kiểm lại nếu thấy chữ hoa xuất hiện giữa từ do văn bản đang ở dạng Unicode tổ hợp.
Làm sao đổi văn bản Unicode tổ hợp sang dựng sẵn trong Excel?
Excel không có hàm sẵn. Cách thông dụng là dùng công cụ chuyển mã đi kèm bộ gõ Unikey qua bộ nhớ tạm, hoặc chuẩn hoá dạng NFC bằng một đoạn mã Python ngắn. Luôn làm trên bản sao và đo lại độ dài sau khi chuyển.
Có nên để AI đoán giới tính từ họ tên để điền cột giới tính không?
Không nên. Suy giới tính từ tên đệm hay từ xưng hô sai ở nhiều trường hợp và gán cho người khác thông tin họ không cung cấp. Nếu cần thông tin này, hãy hỏi trực tiếp qua biểu mẫu.
Tách họ và tên bằng công thức có chính xác không?
Chính xác với họ một chữ, nhưng sai với họ ghép hoặc người mang cả họ cha và họ mẹ. Nên giữ cột họ tên đầy đủ làm cột chính và chỉ dùng cột tách để sắp xếp, có người soát những trường hợp đặc biệt.
Chữ tiếng Việt bị biến thành ký tự lạ thì sửa được không?
Thường sửa được nếu đó là văn bản bảng mã cũ như TCVN3 hoặc VNI mở bằng phông Unicode. Dùng công cụ chuyển mã, chọn đúng bảng mã nguồn để đổi sang Unicode. Nếu dữ liệu đã bị lưu thành dấu chấm hỏi thì chữ gốc đã mất, phải lấy lại từ nguồn.