Ứng dụng Thông báo Hỗ trợ Đăng ký Đăng nhập
3 thành viên trả lời
duongle0 My_bol dmlsb Trả lời cuối cùng: 18/03/2010
Thành viên tích cực nhất

rileykim@vgid.com

8 lượt cảm ơn

alanvu1102@vatgia.com

5 lượt cảm ơn

william88@vgid.com

3 lượt cảm ơn

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?

tamvn 19/09/2008 - 10:41

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.
Câu hỏi này hữu ích với bạn? Cảm ơn
30809

Vui lòng đăng nhập ID VATGIA để gửi trả lời của bạn

duongle0

18/03/2010 - 00:00
Trích dẫn:
Từ bài viết của My_bol
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.

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.
Đọc thêm
1 người đã cảm ơn bình luận này. Bình luận này hữu ích với bạn? Cảm ơn

Báo vi phạm

My_bol

19/09/2008 - 10:42
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.
Đọc thêm
. Bình luận này hữu ích với bạn? Cảm ơn

Báo vi phạm

duongle0

17/03/2010 - 23:56
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)
. Bình luận này hữu ích với bạn? Cảm ơn

Báo vi phạm

dmlsb

18/07/2011 - 14:06

Đơ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ỹ

. Bình luận này hữu ích với bạn? Cảm ơn

Báo vi phạm