Hàm viết hoa chữ cái đầu, bỏ dấu tiếng Việt trong Excel

Dùng PROPER viết hoa chữ cái đầu, UPPER, LOWER, TRIM, CLEAN chuẩn hoá họ tên; công thức bỏ dấu tiếng Việt bằng LAMBDA, REDUCE trên Excel 365 và Google Sheets.

Danh sách họ tên gõ lộn xộn kiểu “nguyễn văn AN ”, “TRẦN thị bình” là chuyện thường ngày ở phòng nhân sự, trường học. Excel có sẵn nhóm hàm để chuẩn hoá: =PROPER(TRIM(A2)) viết hoa chữ cái đầu mỗi từ và xoá khoảng trắng thừa trong một bước. Bài này cũng hướng dẫn công thức bỏ dấu tiếng Việt (“Nguyễn Văn An” → “Nguyen Van An”) để tạo email, tên đăng nhập.

Dấu phân cáchVí dụ dùng dấu phẩy; máy đặt vùng Việt Nam có thể cần dấu chấm phẩy.

1. Nhóm hàm chữ hoa – chữ thường – khoảng trắng

HàmTác dụngVí dụ “ trần THỊ bình ”
UPPER(A2)Viết hoa toàn bộ“ TRẦN THỊ BÌNH ”
LOWER(A2)Viết thường toàn bộ“ trần thị bình ”
PROPER(A2)Viết hoa chữ cái đầu mỗi từ“ Trần Thị Bình ”
TRIM(A2)Xoá khoảng trắng đầu, cuối và khoảng trắng kép giữa các từ“trần THỊ bình”
CLEAN(A2)Xoá ký tự điều khiển không in được (xuống dòng…)—

Công thức chuẩn hoá họ tên hay dùng nhất:

=PROPER(TRIM(CLEAN(A2)))

Gõ ở cột phụ, kéo xuống, sau đó Copy → Paste Special → Values đè lên cột gốc rồi xoá cột phụ.

2. PROPER với chữ tiếng Việt có dấu

Với văn bản Unicode dựng sẵn (chuẩn của bộ gõ Unikey, EVKey mặc định), PROPER xử lý đúng: “nguyễn văn an” → “Nguyễn Văn An”. Các trường hợp sai thường gặp:

  • Hoa sai giữa từ, ví dụ “NguyễN”: văn bản dùng Unicode tổ hợp (dấu là ký tự riêng), PROPER coi dấu là ranh giới từ. Dùng chức năng chuyển mã của Unikey/EVKey đổi sang Unicode dựng sẵn — xem cài đặt Unikey, EVKey.
  • Ký tự lạ kiểu “NguyÔn”: dữ liệu dùng bảng mã cũ TCVN3 hoặc VNI — cần chuyển mã trước, xem sửa lỗi font tiếng Việt.
  • PROPER viết hoa cả chữ sau dấu nháy, gạch nối: “o'neil” → “O'Neil”, “hồ-chí-minh” → “Hồ-Chí-Minh”.
  • TRIM không xoá khoảng trắng “cứng” (mã 160) khi dán từ web. Thêm SUBSTITUTE(A2,CHAR(160)," ") trước TRIM.

3. Bỏ dấu tiếng Việt bằng công thức (Excel 365, Google Sheets)

Trên Excel 365 và Google Sheets, kết hợp LET, REDUCE, LAMBDA để thay lần lượt từng ký tự có dấu bằng ký tự không dấu. Dán nguyên công thức sau (ô cần bỏ dấu là A2):

=LET(
 co,"àáạảãâầấậẩẫăằắặẳẵèéẹẻẽêềếệểễìíịỉĩòóọỏõôồốộổỗơờớợởỡùúụủũưừứựửữỳýỵỷỹđÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸĐ",
 ko,"aaaaaaaaaaaaaaaaaeeeeeeeeeeeiiiiiooooooooooooooooouuuuuuuuuuuyyyyydAAAAAAAAAAAAAAAAAEEEEEEEEEEEIIIIIOOOOOOOOOOOOOOOOOUUUUUUUUUUUYYYYYD",
 REDUCE(A2,SEQUENCE(LEN(co)),LAMBDA(kq,i,SUBSTITUTE(kq,MID(co,i,1),MID(ko,i,1)))))

Hai chuỗi co và ko dài bằng nhau (134 ký tự), ký tự thứ i của chuỗi này ứng với ký tự thứ i của chuỗi kia. REDUCE chạy 134 lần SUBSTITUTE trên cùng một ô. Kết quả: “Nguyễn Thị Ánh Tuyết” → “Nguyen Thi Anh Tuyet”.

MẹoTrên Excel 365, vào Formulas → Name Manager → New, đặt tên BODAU và dán phần =LAMBDA(x, LET(...REDUCE(x,...))) (thay A2 bằng x). Từ đó gõ =BODAU(A2) như một hàm có sẵn.

Tạo email, tên đăng nhập

=LOWER(SUBSTITUTE(ô_đã_bỏ_dấu," ",""))&"@congty.vn"

“Nguyen Van An” → “nguyenvanan@congty.vn”. Nhớ kiểm tra trùng tên.

4. Excel 2019 trở về trước

Không có LAMBDA/REDUCE, cách thuần công thức là lồng nhiều SUBSTITUTE, mỗi lớp thay một ký tự — với 134 ký tự thì công thức rất dài và khó sửa. Thực tế nên chọn một trong hai:

  • Dùng chức năng chuyển mã của Unikey/EVKey có tuỳ chọn loại bỏ dấu (sao chép cột vào clipboard, chuyển, dán lại).
  • Dán cột họ tên vào công cụ Đếm chữ & xử lý văn bản, bấm bỏ dấu, rồi dán kết quả trở lại Excel.

5. Trên Google Sheets

Sheets có đủ PROPER, UPPER, LOWER, TRIM, CLEAN và công thức bỏ dấu ở mục 3 chạy được nguyên vẹn. Muốn áp cho cả cột chỉ với một công thức: =ARRAYFORMULA(PROPER(TRIM(A2:A500))). Các thao tác làm sạch khác như xoá dòng trùng, tách cột có trong bài làm sạch dữ liệu.

Zalo