Nguyên nhân do dùng unicode.
Nếu trong 1 từ có một ký tự unicode nào đó mà có độ lớn > 1 (= 2) Thì đó là ký tự unicode
TỔ HỢP, và ký tự nằm sau nó của cũng từ đó sẽ bị biến thành
chữ hoa khi dùng PROPER. Nếu ký tự unicode chỉ có độ dài = 1 thì đó là ký tự unicode
DỰNG SẴN, và ký tự nằm sau nó của cũng từ đó sẽ
KHÔNG bị biến thành
chữ hoa khi dùng PROPER.
Dữ liệu của bạn có unicode TỔ HỢP nên PROPER hoạt động không chuẩn.
Kiểm tra: Trên hình có E2 = Ễ. Ký tự Ễ trong E2 có được bằng cách copy B2 và dán giá trị vào E2, sau đó loại các ký tự, chỉ giữ lại Ễ. Nhìn công thức trong F2 thấy Ễ trong E2 có độ lớn = 2 - đó là ký tự unicode TỔ HỢP. Tương tự ký tự À trong B2 cũng có độ lớn = 2 và là unicode TỔ HỢP. Chính vì
Ễ và
À là 2 ký tự unicode TỔ HỢP nên trong C2 sau
ễ và
à ta có chữ hoa
N.
A10:A14 về nội dung y như A2:A6, nhưng do tôi chuyển hết về unicode DỰNG SẴN nên B10:B14 cũng là DỰNG SẴN, nên C10:C14 chuẩn
---------
Tóm lại muốn dùng PROPER với unicode thì đó phải là unicode dựng sẵn. Nếu bạn dùng Unikey và chọn "Bảng mã" = Unicode thì dữ liệu của bạn chứa unicode dựng sẵn. Nếu chọn "Bảng mã" = "Unicode tổ hợp" thì dữ liệu của bạn chứa unicode tổ hợp. Nếu dữ liệu đã có sẵn từ nguồn nào đó thì để cho chắc chắn phải convert chúng về unicode dựng sẵn. Có thể convert ngay trong Unikey.
View attachment 260140