VLOOKUP và IFERROR là hai hàm mạnh mẽ nhưng cũng khá phức tạp trong Excel, đặc biệt khi kết hợp chúng. Bài viết này sẽ hướng dẫn bạn cách sử dụng và sửa lỗi #N/A khi dùng IFERROR với VLOOKUP, cùng với ví dụ minh họa cụ thể. Nếu chưa quen với hai hàm này, bạn nên tìm hiểu khái niệm cơ bản của VLOOKUP và IFERROR trước.
Kết Hợp IFERROR và VLOOKUP để Xử Lý Lỗi #N/A
Khi VLOOKUP không tìm thấy giá trị cần tra cứu, nó sẽ trả về lỗi #N/A.
Xử lý lỗi #N/A với VLOOKUP
Tùy vào mục đích sử dụng, bạn có thể muốn thay thế lỗi này bằng văn bản, số 0, hoặc để trống.
Ví dụ 1: Thay Thế Lỗi bằng Văn Bản Tùy Chỉnh
Để thay thế lỗi #N/A bằng văn bản, hãy dùng hàm IFERROR kết hợp với VLOOKUP. Tham số thứ hai của IFERROR (value_if_error) sẽ là văn bản bạn muốn hiển thị, ví dụ: “Không tìm thấy”.
IFERROR(VLOOKUP(…),"Không tìm thấy")
Với giá trị tra cứu ở B2 trong bảng chính và phạm vi tra cứu A2:B4 trong bảng tra cứu, công thức sẽ là:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "Không tìm thấy")
Công thức IFERROR VLOOKUP
Kết quả hiển thị sẽ dễ hiểu hơn rất nhiều. Tương tự, bạn có thể dùng INDEX MATCH với IFERROR:
=IFERROR(INDEX('Lookup table'!$B$2:$B$5,MATCH(B2,'Lookup table'!$A$2:$A$5,0)), "Không tìm thấy")
Công thức IFERROR INDEX MATCH hữu ích khi tra cứu từ phải sang trái và muốn trả về văn bản khi không tìm thấy kết quả.
Ví dụ 2: Trả Về Ô Trống hoặc 0
Để trả về ô trống, hãy dùng “” làm tham số thứ hai của IFERROR:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "")
IFERROR VLOOKUP trả về ô trống
Để trả về 0, hãy dùng 0 làm tham số thứ hai:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), 0)
Lưu ý: IFERROR xử lý tất cả các lỗi, không chỉ #N/A. Điều này có thể gây khó khăn khi debug nếu bạn vô tình gõ sai tên vùng dữ liệu. Trong trường hợp này, nên dùng IFNA hoặc IF ISNA để chỉ bắt lỗi #N/A.
Tìm Kiếm Thay Thế khi VLOOKUP Thất Bại
Nếu VLOOKUP không tìm thấy giá trị, bạn có thể thực hiện một tìm kiếm khác. Ví dụ, tạo bảng thông tin hiển thị số điện thoại chi nhánh cho từng văn phòng.
Dữ liệu nguồn cho VLOOKUP
Để lấy số điện thoại từ cột B dựa trên số văn phòng ở D2, ta dùng:
=VLOOKUP($D$2,$A$2:$B$7,2,FALSE)
Nếu người dùng nhập số văn phòng không tồn tại, ta có thể hiển thị số điện thoại văn phòng trung tâm bằng cách lồng VLOOKUP trong IFERROR:
=IFERROR(VLOOKUP("office "&$D$2,$A$2:$B$7,2,FALSE),VLOOKUP("central office",$A$2:$B$7,2,FALSE))
IFERROR với hai VLOOKUP
Nếu không tìm thấy số chi nhánh, số văn phòng trung tâm sẽ hiển thị:
Số văn phòng trung tâm
Có thể rút gọn công thức bằng cách kiểm tra sự tồn tại của số văn phòng trước:
=VLOOKUP(IFERROR(VLOOKUP(D2,$A$2:$B$7,1,FALSE),"central office"),$A$2:$B$7,2)
VLOOKUP với IFERROR lồng nhau
Việc tra cứu “central office” giúp dễ dàng cập nhật số điện thoại sau này mà không cần sửa từng công thức.
Thực Hiện Chuỗi VLOOKUP
Để thực hiện VLOOKUP liên hoàn, hãy lồng nhiều IFERROR:
IFERROR(VLOOKUP(…), IFERROR(VLOOKUP(…), IFERROR(VLOOKUP(…),"Không tìm thấy")))
Nếu VLOOKUP đầu tiên thất bại, IFERROR sẽ chạy VLOOKUP tiếp theo, cho đến khi tìm thấy kết quả hoặc trả về “Không tìm thấy”.
Ví dụ, tra cứu trên ba sheet (North, South, West) với giá trị tra cứu ở A2:
=IFERROR(VLOOKUP(A2,North!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,South!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,West!$A$2:$B$5,2,FALSE),"Không tìm thấy")))
Chuỗi VLOOKUP
Công thức sẽ tìm kiếm trên cả ba sheet theo thứ tự và trả về kết quả đầu tiên tìm thấy. Trên đây là hướng dẫn sử dụng IFERROR với VLOOKUP trong Excel. Hy vọng bài viết hữu ích cho bạn.
Discussion about this post