Nhờ các anh chị xem giúp lỗi #N/A của Hàm VLOOKUP!

Liên hệ QC
Xin lỗi quên nói trước. Tôi không chỉ trích gì trong bài #14 cả. Bài ấy nói về VLookup và Index+Match.
Tôi chỉ quote chỗ đó để có chỗ đi tiếp. Không ngờ gây khó hiểu hơn.

Chủ yếu tôi muốn thêm rằng "muốn xem hai chuỗi có thực giống nhau thì dùng hàm Exact". Phần test chứ không phải phần thực hiện. Dù lý do gì, tôi vẫn xin lỗi bác như sau:


Tôi chấp nhận bài học:
1. tiết giảm thói ham mở rộng
2. cẩn thận khi trích dẫn.
Nhưng tôi không hiểu bác lôi EXACT vào đây để làm gì. Mọi người thắc mắc là "nhìn" 2 chuỗi Tạ Hữu An như nhau mà VLOOKUP trả về lỗi. Vậy thì tôi giải thích là nhìn như nhau nhưng thực ra chúng khác nhau về bản chất và độ lớn cũng thấy rõ là khác nhau. Bác lôi EXACT ra rồi đưa ví dụ CHU MINH HUY. Chu Minh Huy thì không chỉ nhìn giống nhau mà về bản chất rõ ràng giống nhau y như 2 giọt nước.
Còn chuyện "=" tôi lôi ra để ý thức cho một số bạn thôi. Người ta có thể kiểm tta bằng "=" rồi thấy chúng bằng nhau nên có thể thắc mắc. Vì thế tôi nhắc đến "=" là để lần sau khỏi thắc mắc. Vì nhiều khi "nhìn thế mà không phải là thế".

Ngoài ra EXACT chỉ trả về FALSE chứ không nói tại sao Sheet1!C2 khác Sheet3!C2. Nói mọi người dùng LEN và giải thích unicode dựng sẵn và tổ hợp thì mọi người hiểu ngay là TẠI SAO. Nhiều khi nói là 2 chuỗi khác nhau khi rõ ràng nhìn chúng như nhau thì nhiều người vẫn thấy chưa đủ. Họ có thể tò mò muốn biết TẠI SAO chúng khác nhau. EXACT không đưa ra câu trả lời cho câu hỏi TẠI SAO.

Chuyện mắt nhìn y như nhau mà VLOOKUP không tìm thấy như vậy là đã sáng tỏ. Vấn đề mấu chốt là xử lý. Ngoài việc xử dụng các hàm khác + với xoay xở mà INDEX + MATCH tôi có ghi rõ chỉ là ví dụ (1. Dùng các hàm khác vd. INDEX + MATCH. Lúc này không cần sửa dữ liệu) thì theo tôi cách khôn ngoan nhất là đồng bộ dữ liệu. Và cũng là cách duy nhất nếu muốn dùng VLOOKUP. Nếu ai có cách không đồng bộ dữ liệu mà vẫn dùng được VLOOKUP ngắn gọn thì tôi sẽ rút lại lời này, công khai trước hàng trăm nghìn thành viên của GPE. Tôi là người biết nhận sai nếu thực sự sai. Toán hay code cũng như nhau thôi, sai thì sẽ chỉ ra được sai, chỉ ra được lỗi, không cãi chầy cối được. Và khi sai hay đúng hơn là nhầm lẫn thì tôi đã từng nhiều lần xin lỗi trên GPE ***, không như rất nhiều người không bao giờ nói được lời xin lỗi. Nhưng nếu là tranh luận đàng hoàng.

***








 
Lần chỉnh sửa cuối:
Nhưng tôi không hiểu bác lôi EXACT vào đây để làm gì. Mọi người thắc mắc là "nhìn" 2 chuỗi Tạ Hữu An như nhau mà VLOOKUP trả về lỗi. Vậy thì tôi giải thích là nhìn như nhau nhưng thực ra chúng khác nhau về bản chất và độ lớn cũng thấy rõ là khác nhau. Bác lôi EXACT ra rồi đưa ví dụ CHU MINH HUY. Chu Minh Huy thì không chỉ nhìn giống nhau mà về bản chất rõ ràng giống nhau y như 2 giọt nước.
...
Tôi suy nghĩ không giống nhiều người trên diễn đàn này.
Tôi làm việc với Excel chung cùng với tụi Tây, trong ngành quản trị, kinh doanh và dịch vụ. Do đó tôi quen với cách suy nghĩ và lý luận của tụi nó. Lưu ý vấn đề ở điểm này, tức đường lối suy nghĩ này, không phải đúng hay sai, mà là thói quen.

Túm lại là cũng có những lúc tôi nhận thức sai, không phù hợp với đối tượng và/hoặc khán giả vấn đề trước mắt.
 
Tôi suy nghĩ không giống nhiều người trên diễn đàn này.
Tôi làm việc với Excel chung cùng với tụi Tây, trong ngành quản trị, kinh doanh và dịch vụ. Do đó tôi quen với cách suy nghĩ và lý luận của tụi nó. Lưu ý vấn đề ở điểm này, tức đường lối suy nghĩ này, không phải đúng hay sai, mà là thói quen.

Túm lại là cũng có những lúc tôi nhận thức sai, không phù hợp với đối tượng và/hoặc khán giả vấn đề trước mắt.
Nhưng ở đây là vấn đề cụ thể mà. Tôi không bàn chuyện chung chung. Người ta nhìn bằng mắt thấy 2 chuỗi Tạ Hữu An là "y hệt nhau" và họ thắc mắc tại sao VLOOKUP lại trả về lỗi. EXACT chỉ trả về FALSE, không một lời giải thích TẠI SAO lại False. Tất nhiên EXACT không có nhiệm vụ giải thích gì cả. Nhưng một khi người ta cần một lời giải thích thì theo tôi lôi EXACT ra không giải quyết được gì cả. Tôi cho là người ta vẫn sẽ thấy chưa được giải thích. Tôi cũng có thể sai, vì có người chả tò mò đâu. Nhưng tôi không muốn CHỈ phán là 2 chuỗi khác nhau nên VLOOKUP trả về lỗi. Tôi muốn đưa ra mội lời giải thích TẠI SAO mà tôi cho là đủ thuyết phục. Tất nhiên cái "tôi cho là" cũng chỉ là đánh giá chủ quan thôi, không phải là chân lý.
 
Nhưng ở đây là vấn đề cụ thể mà. Tôi không bàn chuyện chung chung. Người ta nhìn bằng mắt thấy 2 chuỗi Tạ Hữu An là "y hệt nhau" và họ thắc mắc tại sao VLOOKUP lại trả về lỗi. EXACT chỉ trả về FALSE, không một lời giải thích TẠI SAO lại False. Tất nhiên EXACT không có nhiệm vụ giải thích gì cả. Nhưng một khi người ta cần một lời giải thích thì theo tôi lôi EXACT ra không giải quyết được gì cả. Tôi cho là người ta vẫn sẽ thấy chưa được giải thích. Tôi cũng có thể sai, vì có người chả tò mò đâu. Nhưng tôi không muốn CHỈ phán là 2 chuỗi khác nhau nên VLOOKUP trả về lỗi. Tôi muốn đưa ra mội lời giải thích TẠI SAO mà tôi cho là đủ thuyết phục. Tất nhiên cái "tôi cho là" cũng chỉ là đánh giá chủ quan thôi, không phải là chân lý.
Cụ thể của tôi khác cụ thể của bác.
Chung quy chỉ do tôi đặt vị trí của mình sai. Tôi ngỡ quý vị ở đây có thể làm việc ở môi trường giống tôi.

Vị trí ở đây là người làm việc với đống dữ liệu kia:
- Bác sẽ chỉnh dữ liệu cho đồng bộ để làm việc tiếp. Vì bác hiểu các dạng của phông. Và chỉ cần so sánh độ dài của chuỗi là biết cái nào giống cái nào.
- Tôi sẽ mang dữ liệu ấy trở lại bên cung cấp và bảo "dữ liệu của quý vị cào trên mạng (hoặc phần mềm gì đó) ra tùm lum hết. Yêu cầu đồng bộ lại cho tôi". Và tôi cần hàm Exact để chứng minh.
 
Trong công thức của chủ thớt =VLOOKUP(C2;Danhsach;7;0) có

C2 = Tạ Hữu An có 12 ký tự (dùng hàm LEN) - unicode tổ hợp.

Trong khi đó ở bảng dò Danhsach có C2 = Tạ Hữu An có 9 ký tự - unicode dựng sẵn.

Mạc dù công thức
Mã:
=Sheet3!C2=Sheet1!C2
trả về TRUE nhưng VLOOKUP CHẮC CHẮN trả về #N/A.

Chỉ có 2 cách xử lý:
1. Dùng các hàm khác vd. INDEX + MATCH. Lúc này không cần sửa dữ liệu.

2. Nếu muốn dùng VLOOKUP thì BẮT BUỘC phải ĐỒNG BỘ dữ liệu. Không thể để dữ liệu như cũ rồi mơ là VLOOKUP trả về giá trị đúng. Không có chuyện ấy đâu, quên đi.

Nhấc lại: hoặc dùng hàm khác hoặc nếu dùng VLOOKUP thì BẮT BUỘC phải ĐỒNG BỘ dữ liệu. Không có chuyện dữ liệu khác nhau về độ dài mà VLOOKUP trả về giá trị đúng đâu. Quên đi.
Bài đã được tự động gộp:


Nếu bạn muốn dùng VLOOKUP thì BẮT BUỘC bạn phải ĐỒNG BỘ dữ liệu (nếu dùng vd. INDEX + MATCH thì không cần). Theo tôi tốt nhất là bạn chuyển dữ liệu ở cột C của 2 sheet cùng về unicode dựng sẵn. Bạn có thể dùng Unikey để chuyển.
Em cảm ơn anh đã chia sẻ. Lại học thêm được nhiều cái. :)
 
Web KT

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

Back
Top Bottom