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

Liên hệ QC

QuocPhong

Learning to be!
Tham gia
21/11/07
Bài viết
256
Được thích
247
Nhờ các anh chị xem giúp lỗi #N/A của Hàm VLOOKUP như trong file đính kèm. Giá trị tìm kiếm và cột dò tìm đều khớp nhau mà hàm vẫn cứ báo lỗi #N/A. Cám ơn các anh chị.
 

File đính kèm

  • Lỗi VLOOKUP.xlsx
    49 KB · Đọc: 18
Do bộ gõ khác nhau đó bạn, bạn lấy hàm len check xem số kí tự khác nhau đấy. Mình cũng ngồi hóng cao nhân.
 
Copy Tên sheet 1 paste vào sheet 3 sẽ biết nguyên nhân...
 
Nhờ các anh chị xem giúp lỗi #N/A của Hàm VLOOKUP như trong file đính kèm. Giá trị tìm kiếm và cột dò tìm đều khớp nhau mà hàm vẫn cứ báo lỗi #N/A. Cám ơn các anh chị.
Bạn thử dùng công thức Len("Tạ Hữu An") của 2 sheet. Nó ra số kí tự khác nhau. Đó là nguyên nhân ấy
 
Cám ơn anh. Cho em hỏi có cách nào xử lý để dữ liệu 2 cột họ và tên khớp nhau không ạ?

Chúng đang khớp nhau chuẩn chỉ 100% rồi đó thôi, còn cần làm gì đâu bạn?

Không phải bạn thử hai tên = nhau = True đó. Cứ thế làm việc bình thường thôi. Bạn đừng nghĩ ngợi phức tạp lên như đang nghĩ.
 
Chúng đang khớp nhau chuẩn chỉ 100% rồi đó thôi, còn cần làm gì đâu bạn?

Không phải bạn thử hai tên = nhau = True đó. Cứ thế làm việc bình thường thôi. Bạn đừng nghĩ ngợi phức tạp lên như đang nghĩ.
So sánh dữ liệu 2 cột thì hoàn toàn giống nhau, nhưng khi sử dụng vlookup thì bị lỗi N/A. Em vẫn chưa hiểu tại sao? Anh giúp em nhé! Em cảm ơn.
 
Em chưa hiểu tại sao dùng hàm Vlookup thì bị lỗi N/A?
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:

Cám ơn anh. Cho em hỏi có cách nào xử lý để dữ liệu 2 cột họ và tên khớp nhau không ạ?
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.
 
Lần chỉnh sửa cuối:
Nhờ các anh chị xem giúp lỗi #N/A của Hàm VLOOKUP như trong file đính kèm. Giá trị tìm kiếm và cột dò tìm đều khớp nhau mà hàm vẫn cứ báo lỗi #N/A. Cám ơn các anh chị.
Cột họ tên ở sheet1 và sheet 3 khác nhau nên k Vlookup được.
Copy lại toàn bộ tên ở Sheet 1 qua Sheet 3 hoặc Ngược lại thì sẽ nhảy bình thường
 
...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.
...
Toán tử so sánh "=" trong bảng tính chủ yếu chỉ so sánh trị số. Khi so sánh chuỗi thì khá phức tạp.
Vì vậy, MS có hàm EXACT để so sánh và debug trường hợp như VLOOKUP.

Túm lại, khi so sánh chuỗi tiếng Việt, nếu nghi có gì lạ trong phông chữ thì dùng hàm EXACT để khỏi lầm lẫn.

1649250364199.png

Ảnh trên cho thấy đối với hàm Exact, (Sheet1)"Tạ Hữu An" khác với (Sheet3)"Tạ Hữu An". Và đó là cách so sánh của VLookup.
Để ý dòng 12, hàm Exact cho rằng (Sheet1)"Chu Minh Huy" giống (Sheet3)"Chu Minh Huy". Và VLookup cũng đồng ý.
 
Toán tử so sánh "=" trong bảng tính chủ yếu chỉ so sánh trị số. Khi so sánh chuỗi thì khá phức tạp.
Vì vậy, MS có hàm EXACT để so sánh và debug trường hợp như VLOOKUP.

Túm lại, khi so sánh chuỗi tiếng Việt, nếu nghi có gì lạ trong phông chữ thì dùng hàm EXACT để khỏi lầm lẫn.

View attachment 274112

Ảnh trên cho thấy đối với hàm Exact, (Sheet1)"Tạ Hữu An" khác với (Sheet3)"Tạ Hữu An". Và đó là cách so sánh của VLookup.
Để ý dòng 12, hàm Exact cho rằng (Sheet1)"Chu Minh Huy" giống (Sheet3)"Chu Minh Huy". Và VLookup cũng đồng ý.
Không có chỗ nào tôi viết là "=" hoạt động theo lôgíc này hay lôgíc khác. Vì tôi không quan tâm nó làm gì sau cánh gà. Tôi chỉ muốn lưu ý là nhiều khi X = Y nhưng VLOOKUP không tìm thấy X trong mảng chứa Y. Tức tôi muốn lưu ý rằng nhiều khi "nhìn thế mà không phải thế". Thế thôi. Mọi cái tôi không viết rõ trên giấy trắng mực đen thì không nên suy diễn.

Tôi viết là 2 chuỗi có độ dài khác nhau mà VLOOKUP coi như khác nhau thì tôi thấy có thể hiểu được. Nhưng tôi không nói là nếu 2 chuỗi có độ dài khác nhau thì VLOOKUP LUÔN LUÔN không chấp nhận.

Tóm lại tôi chỉ cho rằng với dữ liệu nguồn và dữ liệu tìm kiếm khác kiểu thì chuyện không chấp nhận bởi VLOOKUP tôi cho là có lý do chính đáng. Nếu ai đó cho đó không là lý do chính đáng mà do VLOOKUP quá quắt thì tôi cũng tôn trọng ý kiến của người ta. Mỗi người tự đánh giá xem lý do có thuyết phục hay không thôi. Và tôi đề xuất đồng bộ dữ liệu. Tôi không phân tích, không tìm hiểu những vấn đề khác. Ai thích mở rộng và bàn những vấn đề khác thì miễn gọi tên tôi.
 
Lần chỉnh sửa cuối:
Không có chỗ nào tôi viết là "=" hoạt động theo lôgíc này hay lôgíc khác. Vì tôi không quan tâm nó làm gì sau cánh gà. Tôi chỉ muốn lưu ý là nhiều khi X = Y nhưng VLOOKUP không tìm thấy X trong mảng chứa Y. Tức tôi muốn lưu ý rằng nhiều khi "nhìn thế mà không phải thế". Thế thôi. Mọi cái tôi không viết rõ trên giấy trắng mực đen thì không nên suy diễn.
...
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 không phân tích, không tìm hiểu những vấn đề khác. Ai thích mở rộng và bàn những vấn đề khác thì miễn gọi tên tôi.
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.
 
Lần chỉnh sửa cuối:
Em cảm ơn. Chúc anh luôn vui, khỏe.

Mình giải thích thêm bài #12.

... Hiểu đơn giản là cái chuỗi đem đi tìm trong hàm Vlookup() kia nó không tìm thấy trong bảng dữ liệu tra cứu, vậy nên theo đúng hướng dẫn về hàm Vlookup() của Microsoft chính chủ sẽ trả về #N/A.

Tại sao mắt người nhìn thấy giống nhau nhưng hàm Vlookup() không tìm ra thì chỉ có: Các kỹ sư Microsoft viết code hàm Vlookup() đó biết, hoặc ai đó có khả năng mổ bụng code hàm Vlookup() của Micrsoft và đọc hiểu code là gì. Bởi hiện tại không có tài liệu công bố nào của Microsoft công khai code hàm Vlookup() để mọi người cùng ngâm cứu.

Không chỉ hàm Vlookup() cũng dính chưởng này mà hàm Match() cũng dính chưởng này, nên dùng Match() với cái chuỗi kia trả về #N/A, không làm ăn được gì sứt.

Cái vụ chữ nghĩa này gần đây cũng có một thớt như vậy đó, và tất nhiên bí kíp gia truyền để trị chúng rất đơn giản như mình đã làm ở trên.

 
Mình giải thích thêm bài #12.

... Hiểu đơn giản là cái chuỗi đem đi tìm trong hàm Vlookup() kia nó không tìm thấy trong bảng dữ liệu tra cứu, vậy nên theo đúng hướng dẫn về hàm Vlookup() của Microsoft chính chủ sẽ trả về #N/A.

Tại sao mắt người nhìn thấy giống nhau nhưng hàm Vlookup() không tìm ra thì chỉ có: Các kỹ sư Microsoft viết code hàm Vlookup() đó biết, hoặc ai đó có khả năng mổ bụng code hàm Vlookup() của Micrsoft và đọc hiểu code là gì. Bởi hiện tại không có tài liệu công bố nào của Microsoft công khai code hàm Vlookup() để mọi người cùng ngâm cứu.

Không chỉ hàm Vlookup() cũng dính chưởng này mà hàm Match() cũng dính chưởng này, nên dùng Match() với cái chuỗi kia trả về #N/A, không làm ăn được gì sứt.

Cái vụ chữ nghĩa này gần đây cũng có một thớt như vậy đó, và tất nhiên bí kíp gia truyền để trị chúng rất đơn giản như mình đã làm ở trên.

Bí kíp quá tuyệt, lúc trước không để ý giờ xem lại mới thấy phương cách bí ẩn nhưng tuyệt vời ngài Bill dùng xử lý cho bộ font đặc biệt, tiếc rằng có nhiều bí mật của Excel ngài Bill không công bố rộng rải khiến nhiều người phải bơi trong ma trận Excel :)
 
Web KT
Back
Top Bottom