Xin trợ giúp hàm hoặc cách làm lọc nội dung có dấu và không dấu

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

sunnelson

Thành viên mới
Tham gia
1/8/23
Bài viết
1
Được thích
0
Nghề nghiệp
IT
Ví dụ mình có một cột bao gồm các dòng có dấu tiếng Việt và không có dấu tiếng Việt. Làm cách nào mình lọc thành cột chỉ lấy những ô không có dấu tiếng Việt (Xem hình minh họa)
Xin cảm ơn
screenshot_1690889165.png
 
Ví dụ mình có một cột bao gồm các dòng có dấu tiếng Việt và không có dấu tiếng Việt. Làm cách nào mình lọc thành cột chỉ lấy những ô không có dấu tiếng Việt (Xem hình minh họa)
Xin cảm ơn
View attachment 293386
Bạn liệt kê bộ mã tiếng Việt thật đầy đủ rồi duyệt qua từng ô, ô nào không dương tính với bộ mã thì chọn thôi.
 
Tôi đang hóng dùng hàm Excel để làm việc này.
 
Ví dụ mình có một cột bao gồm các dòng có dấu tiếng Việt và không có dấu tiếng Việt. Làm cách nào mình lọc thành cột chỉ lấy những ô không có dấu tiếng Việt (Xem hình minh họa)
Xin cảm ơn
View attachment 293386
Dữ liệu ở cột A
Mã:
=IFERROR(IF(OR(CODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))>122,(CODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))=63)*(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)<>"?")),"",A2),"")
Nhấn Ctrl+Shift+Enter, Copy xuống
 
Lần chỉnh sửa cuối:
Dữ liệu ở cột A
Mã:
=IFERROR(IF(OR(CODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))>122,(CODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))=63)*(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)<>"?")),"",A2),"")
Nhấn Ctrl+Shift+Enter, Copy xuống
Chuyển qua 365 xem thử có cải tiến về tốc độ?
Tôi biết bạn theo chiều hướng (tiếng Anh là favour, không phải prefer) một công thức cho mọi phiên bản. Nhưng thiết nghĩ đến một lúc nào cũng phải cắn răng (tiếng Anh là 'bite the bullet') mà đổi mới. Vậy thì bây giờ tại sao không từ từ mà thử?
 
Chuyển qua 365 xem thử có cải tiến về tốc độ?
Tôi biết bạn theo chiều hướng (tiếng Anh là favour, không phải prefer) một công thức cho mọi phiên bản. Nhưng thiết nghĩ đến một lúc nào cũng phải cắn răng (tiếng Anh là 'bite the bullet') mà đổi mới. Vậy thì bây giờ tại sao không từ từ mà thử?
Dùng excel bản cao hơn phải trả phí, mình không có nhu cầu nên không cài bản mới
 
Dùng excel bản cao hơn phải trả phí, mình không có nhu cầu nên không cài bản mới
Vậy để tôi dịch. Dịch thẳng, không sửa đổi thuật toán.

=LET(xx, MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1), xxx, CODE(xx), IFERROR(IF(OR(xxx>122,(xxx=63)*(xx<>"?")),"",A2),""))

Vì Excel 365 tự biết hàm mảng cho nên chỉ Enter. Không cần Ctrl+Shift+Enter. Nhưng cái này không quan trọng. Cái lợi ở đây là biểu thức ROW(INDIRECT("1:"&LEN(A2))),1) Excel chỉ tính 1 lần và cho vào biến xx; biểu thức tính code của nó cũng vậy, cho vào biến xxx.
 
Vậy để tôi dịch. Dịch thẳng, không sửa đổi thuật toán.

=LET(xx, MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1), xxx, CODE(xx), IFERROR(IF(OR(xxx>122,(xxx=63)*(xx<>"?")),"",A2),""))

Vì Excel 365 tự biết hàm mảng cho nên chỉ Enter. Không cần Ctrl+Shift+Enter. Nhưng cái này không quan trọng. Cái lợi ở đây là biểu thức ROW(INDIRECT("1:"&LEN(A2))),1) Excel chỉ tính 1 lần và cho vào biến xx; biểu thức tính code của nó cũng vậy, cho vào biến xxx.
Dùng Excel 365 mà dịch thẳng từ công thức áp dụng cho Excel 2007 thì quá phí rồi. Excel 365 chỉ cần vầy.
Mã:
=IF(MAX(UNICODE(MID(A2;SEQUENCE(LEN(A2)+1);1)&1))>126;"";A2&"")
 
Web KT

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

Back
Top Bottom