Xin hỏi làm cách nào để hàm vlookup trong Excel có thể trả về giá trị 0 nếu như giá trị dò không có, tôi đã thử lồng vào hàm if nhưng không được?

Xin hỏi làm cách nào để hàm vlookup trong Excel có thể trả về giá trị 0 nếu như giá trị dò không có, tôi đã thử lồng vào hàm if nhưng không được, trong mọi trường hợp nếu vlookup dò không có giá trị đều trả về là #N/A.
Nguyen Ha My
Nguyen Ha My
Trả lời 15 năm trước
Hàm VLookup (hay bất kỳ hàm thư viện nào khác) đều có đặc tả chức năng rõ ràng và xác định, người dùng phải hiểu và sử dụng đúng theo đặc tả của hàm. Thí dụ nếu bạn tra cứu tài liệu chỉ dẫn về hàm VLookup thì sẽ biết rõ rằng nếu dò tìm không có (và nếu tham số thứ tư của hàm là False) thì hàm sẽ trả về mã lỗi “#N/A”. Lưu ý rằng nếu chọn giá trị 0 để báo lỗi như bạn đề nghị thì không tổng quát vì giá trị 0 có thể trùng với kết quả tìm được. Tuy nhiên để giải quyết yêu cầu của bạn, cách thông thường là định nghĩa 1 hàm user-defined mới có đặc tả y như hàm VLookup rồi hiệu chỉnh lại mã lỗi “#N/A” về 0. Thí dụ hàm MyVLookup do chúng tôi viết như sau: ‘Hàm MyVlookup có danh sách tham số y như VLookup Public Function MyVLookup(val As Variant, r As Range, c As Integer, flag As Boolean) As Variant ‘gọi VLookup MyVLookup = Application.VLookup(val, r, c, flag) ‘kiểm tra xem có lỗi không, nếu có trả về 0 If IsError(MyVLookup) Then MyVLookup = 0 End Function Nếu bạn đặt hàm trên trong 1 file add-ins (thí dụ file *.xla) rồi add vào Excel thì bạn có thể gọi nó ở bất kỳ tài liệu Excel nào. Còn nếu bạn đặt hàm trong 1 module code của 1 tài liệu Excel thì chỉ có tài liệu Excel đó dùng được thôi.
Nguyen Hong Diep
Nguyen Hong Diep
Trả lời 14 năm trước
Cái này làm được, vấn đề là bạn hỏi ở đây không đúng chỗ. =IF(VLOOKUP(A1,A1:C4,2)<>0,VLOOKUP(A1,A1:C4,2),0)
Nguyen Hong Diep
Nguyen Hong Diep
Trả lời 14 năm trước
[quote]Từ bài viết của [b]My_bol[/b] Hàm VLookup (hay bất kỳ hàm thư viện nào khác) đều có đặc tả chức năng rõ ràng và xác định, người dùng phải hiểu và sử dụng đúng theo đặc tả của hàm. Thí dụ nếu bạn tra cứu tài liệu chỉ dẫn về hàm VLookup thì sẽ biết rõ rằng nếu dò tìm không có (và nếu tham số thứ tư của hàm là False) thì hàm sẽ trả về mã lỗi “#N/A”. Lưu ý rằng nếu chọn giá trị 0 để báo lỗi như bạn đề nghị thì không tổng quát vì giá trị 0 có thể trùng với kết quả tìm được. Tuy nhiên để giải quyết yêu cầu của bạn, cách thông thường là định nghĩa 1 hàm user-defined mới có đặc tả y như hàm VLookup rồi hiệu chỉnh lại mã lỗi “#N/A” về 0. Thí dụ hàm MyVLookup do chúng tôi viết như sau: ‘Hàm MyVlookup có danh sách tham số y như VLookup Public Function MyVLookup(val As Variant, r As Range, c As Integer, flag As Boolean) As Variant ‘gọi VLookup MyVLookup = Application.VLookup(val, r, c, flag) ‘kiểm tra xem có lỗi không, nếu có trả về 0 If IsError(MyVLookup) Then MyVLookup = 0 End Function Nếu bạn đặt hàm trên trong 1 file add-ins (thí dụ file *.xla) rồi add vào Excel thì bạn có thể gọi nó ở bất kỳ tài liệu Excel nào. Còn nếu bạn đặt hàm trong 1 module code của 1 tài liệu Excel thì chỉ có tài liệu Excel đó dùng được thôi.[/quote] Thật ra vấn đề không phức tạp như bạn viết đâu, nếu ai là người sử dụng hàm tốt thì chỉ cần kết hợp ham vlookup và ham if thui.
Dao My
Dao My
Trả lời 12 năm trước

Đơn giản bạn chỉ cần thêm vào hàm ISNA(), như sau:

=IF(ISNA(VLOOKUP(A1,A1:C4,2)),0,VLOOKUP(A1,A1:C4,2))

Chúc bạn thành công.

Đào Mỹ