Nhờ giúp đỡ về công thức Upper và Proper

Liên hệ QC

nghiank0909

Thành viên mới
Tham gia
28/5/21
Bài viết
5
Được thích
1
Chào mọi người, Mình có một file như ảnh, Mình dùng công thức Upper và Proper với mục đích đưa thông tin ở Họ và Tên về định dạng viết hoa ký tự đầu tiên, các ký tự liền sau viết thường. Tuy nhiên, không biết bị lỗi gì mà kết quả ở cột Proper không đúng như mong đợi. Mong mọi người hỗ trợ ạ. Cám ơn mọi người rất nhiều.
Untitled.png
 

File đính kèm

  • hoidd.xlsx
    9 KB · Đọc: 5
Chào mọi người, Mình có một file như ảnh, Mình dùng công thức Upper và Proper với mục đích đưa thông tin ở Họ và Tên về định dạng viết hoa ký tự đầu tiên, các ký tự liền sau viết thường. Tuy nhiên, không biết bị lỗi gì mà kết quả ở cột Proper không đúng như mong đợi.
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.

proper.jpg
 

File đính kèm

  • hoidd.xlsx
    9.2 KB · Đọc: 5
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
Trân trọng cảm ơn sự hỗ trợ của bạn, chúc bạn một ngày tốt lành!
 
Web KT

Bài viết mới nhất

Back
Top Bottom