1. Vậy bạn phải nói quy luật tạo là gì? Vì với 3 mẫu bạn làm thủ công nó đã không cùng quy luật, ngoài việc lấy các chữ cái đầu của mỗi từ phía trước, thì 2 cái đầu bạn lấy 2 từ cuối đầy đủ, cái thứ 3 bạn lấy 1 từ cuối đầy đủ (bỏ dấu).Bản demo này của mình có ít thiết bị chứ còn nhiều lắm nên ngồi làm mất nhiều thời gian.
Quy luật là 2 từ đầu lấy 2 chữ cái đầu các từ sua để nguyên chuyển thành chữ in hoa không dấu bỏ các khoảng trắng VD: Trạm dầu thủy lực lò - TDTHUYLUCLO.1. Vậy bạn phải nói luật tạo ra là gì? Vì 3 mẫu bạn làm thủ công nó đã không cùng luật, ngoài việc lấy các chữ cái đầu của mỗi từ phía trước thì 2 cái đầu bạn lấy 2 từ cuối cùng đủ, cái thứ 3 bạn lấy 1 từ cuối cùng đủ (bỏ dấu).
2. Trong kết quả của bạn, bạn đã loại bỏ dấu tiếng Việt, vì vậy công thức đơn thuần sẽ không thể thực hiện được. Bạn phải sử dụng VBA hoặc tạo cột phụ rồi loại bỏ dấu bằng Unikey
Ví dụ: Hệ thống nước làm mát "cw/cwr-kw" thì kết quả là gìQuy luật là 2 từ đầu lấy 2 chữ cái đầu các từ sua để nguyên chuyển thành chữ in hoa không dấu bỏ các khoảng trắng VD: Trạm dầu thủy lực lò - TDTHUYLUCLO.
Quy luật là 2 từ đầu lấy 2 chữ cái đầu các từ sua để nguyên chuyển thành chữ in hoa không dấu bỏ các khoảng trắng VD: Trạm dầu thủy lực lò - TDTHUYLUCLO.
=MAP(UPPER(C4:C123),LAMBDA(s,LET(a,TEXTSPLIT(s," "),CONCAT(LEFT(TAKE(a,,2)),IFERROR(LOOKUP(MID(CONCAT(DROP(a,,2)),ROW(1:50),1),CHAR(ROW(1:99))), "")))))
Cảm ơn Pro mình áp dụng theo công thức của bạn thấy đúng như luật rồi tuy nhiên còn 1 số chữ số nó chuyển thành @. Bản giảm thời gian sử dụng giúp mình nhé. Xin cảm ơn nhiềuView attachment 308677
Công thức này viết đúng theo bạn mô tả (không có ngoại lệ)
[MÃ]=MAP(UPPER(C4:C123),LAMBDA(s,LET(a,TEXTSPLIT(s," "),CONCAT(LEFT(TAKE(a,,2)),IFERROR(LOOKUP(MID(CONCAT(DROP(a,,2)),ROW(1:50),1),CHAR(ROW(1:99))), "")))))[/MÃ]
Nguyên nhân chuyển thành @ theo mình có thể do bảng mã. Hàm MID sẽ cho kết quả thuộc bảng mã UNICODE, hàm CHAR cho kết quả là bảng mã ASCII, hai thằng này có sự khác nhau nhất định nên khi dùng LOOKUP để tìm kiếm nó cho kết quả không mong muốn. Thêm nữa, kết quả của những ký tự là chữ một số vị trí cũng không chính xác (ảnh). Mình rất thích cách dùng LOOKUP và CHAR của @Duy Tùng 9x để loại bỏ dấu tiếng việt, nhưng có vẻ chưa được hoàn thiện lắm, mong sẽ có công thức cập nhật hoàn thiện hơncòn 1 số chữ số nó chuyển thành @
REGEX xử lý cái số đó riêng, xong rồi là dùng thôi bạn. Vậy đỡ đau đầuNguyên nhân chuyển thành @ theo mình có thể do bảng mã. Hàm MID sẽ cho kết quả thuộc bảng mã UNICODE, hàm CHAR cho kết quả là bảng mã ASCII, hai thằng này có sự khác nhau nhất định nên khi dùng LOOKUP để tìm kiếm nó cho kết quả không mong muốn. Thêm nữa, kết quả của những ký tự là chữ một số vị trí cũng không chính xác (ảnh). Mình rất thích cách dùng LOOKUP và CHAR của @Duy Tùng 9x để loại bỏ dấu tiếng việt, nhưng có vẻ chưa được hoàn thiện lắm, mong sẽ có công thức cập nhật hoàn thiện hơn
Cảm ơn bạn mình sửa công thức [MÃ]=MAP(UPPER(C4:C123),LAMBDA(s,LET(a,TEXTSPLIT(s," "),CONCAT(LEFT(TAKE(a,,2)),IFERROR(LOOKUP(MID(CONCAT(DROP(a,,2)),ROW(1:50),1),CHAR(ROW(1:91))), "")))))[/MÃ] (ROW(1:91) là đượcREGEX xử lý số riêng, xong rồi bạn thôi. Sau đó, hỗ trợ cơn đau đầu![]()