Hàm IFERROR & VLOOKUP - bẫy #N/A và các lỗi khác

  • Chia Sẻ Cái Này
Michael Brown

Trong hướng dẫn này, chúng ta sẽ xem xét cách sử dụng các hàm IFERROR và VLOOKUP cùng nhau để bẫy và xử lý các lỗi khác nhau. Ngoài ra, bạn sẽ học cách thực hiện các vlookup tuần tự trong Excel bằng cách lồng nhiều hàm IFERROR vào nhau.

VLOOKUP và IFERROR trong Excel - hai hàm này có thể khá khó hiểu khi tách rời nhau chứ chưa nói đến việc kết hợp chúng với nhau. Trong bài viết này, bạn sẽ tìm thấy một số ví dụ dễ thực hiện giải quyết các cách sử dụng phổ biến và minh họa rõ ràng logic của các công thức.

Nếu bạn không có nhiều kinh nghiệm với các hàm IFERROR và VLOOKUP, thì có thể bạn nên sửa lại những điều cơ bản trước tiên bằng cách nhấp vào các liên kết ở trên.

    Công thức IFERROR VLOOKUP để xử lý lỗi #N/A và các lỗi khác

    Khi Excel Vlookup không tìm thấy một giá trị tra cứu, nó sẽ đưa ra lỗi #N/A, như sau:

    Tùy thuộc vào nhu cầu kinh doanh của bạn, bạn có thể muốn ngụy trang lỗi bằng văn bản của riêng mình, không hoặc một ô trống.

    Ví dụ 1. IFERROR với công thức VLOOKUP để thay thế lỗi bằng văn bản của riêng bạn

    Nếu bạn muốn thay thế ký hiệu lỗi tiêu chuẩn bằng văn bản tùy chỉnh của mình, hãy ngắt dòng Công thức VLOOKUP trong IFERROR và nhập bất kỳ văn bản nào bạn muốn trong đối số thứ 2 ( value_if_error ), ví dụ: "Không tìm thấy":

    IFERROR(VLOOKUP(),"Không found")

    Với giá trị tra cứu ở B2 trong Bảng chính và phạm vi tra cứu A2:B4 trong Tra cứubảng, công thức có dạng sau:

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "Not found")

    Ảnh chụp màn hình bên dưới hiển thị công thức VLOOKUP IFERROR Excel của chúng tôi đang hoạt động:

    Công thức kết quả trông dễ hiểu hơn và ít đáng sợ hơn nhiều phải không?

    Theo cách tương tự, bạn có thể sử dụng INDEX MATCH cùng với IFERROR:

    =IFERROR(INDEX('Lookup table'!$B$2:$B$5,MATCH(B2,'Lookup table'!$A$2:$A$5,0)), "Not found")

    IFERROR Công thức INDEX MATCH đặc biệt hữu ích khi bạn muốn lấy các giá trị từ một cột nằm bên trái của cột tra cứu (tra cứu bên trái) và trả về văn bản của chính bạn khi không tìm thấy gì.

    Ví dụ 2. IFERROR với VLOOKUP để trả về giá trị trống hoặc 0 nếu không tìm thấy gì

    Nếu bạn không muốn hiển thị bất kỳ thứ gì khi không tìm thấy giá trị tra cứu, hãy yêu cầu IFERROR hiển thị chuỗi trống (""):

    IFERROR(VLOOKUP(),"")

    Trong ví dụ của chúng ta, công thức diễn ra như sau:

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "")

    Như bạn có thể thấy, nó không trả về gì khi giá trị tra cứu không có trong danh sách tìm kiếm.

    Nếu bạn muốn thay thế lỗi bằng giá trị 0 , hãy đặt 0 trong cuối cùng lập luận:

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), 0)

    Lời cảnh báo! Hàm IFERROR của Excel phát hiện tất cả các loại lỗi, không chỉ lỗi #N/A. Nó là tốt hay xấu? Tất cả phụ thuộc vào mục tiêu của bạn. Nếu bạn muốn che giấu tất cả các lỗi có thể xảy ra, IFERROR Vlookup là cách phù hợp. Nhưng đây có thể là một kỹ thuật không khôn ngoan trong nhiều trường hợp.

    Ví dụ: nếu bạn đã tạo một dải ô được đặt tên cho dữ liệu bảng của mình và viết sai chính tả tên đó trongCông thức Vlookup, IFERROR sẽ bắt lỗi #NAME? lỗi và thay thế bằng "Không tìm thấy" hoặc bất kỳ văn bản nào khác mà bạn cung cấp. Kết quả là, bạn có thể không bao giờ biết được công thức của mình đang mang lại kết quả sai trừ khi chính bạn phát hiện ra lỗi đánh máy. Trong trường hợp như vậy, một cách tiếp cận hợp lý hơn sẽ chỉ bẫy lỗi #N/A. Đối với điều này, hãy sử dụng công thức IFNA Vlookup trong Excel 2013 trở lên, IF ISNA VLOOKUP trong tất cả các phiên bản Excel.

    Điểm mấu chốt là: hãy thật cẩn thận khi chọn công thức VLOOKUP đi kèm với bạn :)

    Nhập IFERROR trong VLOOKUP để luôn tìm thấy thứ gì đó

    Hãy tưởng tượng tình huống sau: bạn tra cứu một giá trị cụ thể trong danh sách và không tìm thấy giá trị đó. Bạn có những lựa chọn nào? Nhận lỗi N/A hoặc hiển thị thông báo của riêng bạn. Trên thực tế, có một tùy chọn thứ ba - nếu vlookup chính của bạn không hoạt động, thì hãy tìm kiếm thứ khác chắc chắn có ở đó!

    Ví dụ của chúng tôi xa hơn, hãy tạo một số loại bảng điều khiển cho người dùng của chúng tôi sẽ hiển thị cho họ tiện ích mở rộng số của một văn phòng cụ thể. Đại loại như thế này:

    Vậy, làm cách nào để kéo phần mở rộng từ cột B dựa trên số văn phòng trong D2? Với công thức Vlookup thông thường này:

    =VLOOKUP($D$2,$A$2:$B$7,2,FALSE)

    Và nó sẽ hoạt động bình thường miễn là người dùng của bạn nhập một số hợp lệ vào D2. Nhưng nếu người dùng nhập một số không tồn tại thì sao? Trong trường hợp này, hãy để họ gọi cho văn phòng trung tâm! Đối với điều này, bạn nhúng công thức trên vàođối số value của IFERROR và đặt một Vlookup khác vào đối số value_if_error .

    Công thức đầy đủ hơi dài nhưng nó hoạt động hoàn hảo:

    =IFERROR(VLOOKUP("office "&$D$2,$A$2:$B$7,2,FALSE),VLOOKUP("central office",$A$2:$B$7,2,FALSE))

    Nếu tìm thấy số văn phòng, người dùng sẽ nhận được số máy nhánh tương ứng:

    Nếu không tìm thấy số văn phòng, máy nhánh văn phòng trung tâm được hiển thị:

    Để làm cho công thức gọn hơn một chút, bạn có thể sử dụng một cách tiếp cận khác:

    Trước tiên, hãy kiểm tra xem có số trong D2 không trong cột tra cứu (xin lưu ý rằng chúng tôi đặt col_index_num thành 1 để công thức tra cứu và trả về giá trị từ cột A): VLOOKUP(D2,$A$2:$B$7,1,FALSE)

    Nếu không tìm thấy số văn phòng quy định thì ta tìm chuỗi “văn phòng trung tâm” chắc chắn có trong danh sách tra cứu. Đối với điều này, bạn bọc VLOOKUP đầu tiên trong IFERROR và lồng toàn bộ tổ hợp này vào bên trong một hàm VLOOKUP khác:

    =VLOOKUP(IFERROR(VLOOKUP(D2,$A$2:$B$7,1,FALSE),"central office"),$A$2:$B$7,2)

    Chà, một công thức hơi khác, kết quả giống nhau:

    Nhưng lý do để tra cứu "văn phòng trung tâm" là gì, bạn có thể hỏi tôi. Tại sao không cung cấp số mở rộng trực tiếp trong IFERROR? Vì tiện ích mở rộng có thể thay đổi vào một thời điểm nào đó trong tương lai. Nếu điều này xảy ra, bạn sẽ chỉ phải cập nhật dữ liệu của mình một lần trong bảng nguồn mà không phải lo lắng về việc cập nhật từng công thức VLOOKUP của mình.

    Cách thực hiện các hàm VLOOKUP tuần tự trong Excel

    Trong các trường hợp khi bạn cần phảithực hiện cái gọi là Vlookup sequential hoặc chained trong Excel tùy thuộc vào việc tra cứu trước đó thành công hay thất bại, hãy lồng hai hoặc nhiều hàm IFERROR để chạy từng cái một Vlookup của bạn:

    IFERROR(VLOOKUP(), IFERROR(VLOOKUP(), IFERROR(VLOOKUP(),"Không tìm thấy")))

    công thức hoạt động theo logic sau:

    Nếu VLOOKUP đầu tiên không tìm thấy gì, thì IFERROR đầu tiên sẽ bẫy lỗi và chạy một VLOOKUP khác. Nếu VLOOKUP thứ hai không thành công, IFERROR thứ hai sẽ bắt lỗi và chạy VLOOKUP thứ ba, v.v. Nếu tất cả các Vlookup gặp sự cố, IFERROR cuối cùng sẽ trả về thông báo của bạn.

    Công thức IFERROR lồng nhau này đặc biệt hữu ích khi bạn phải Vlookup trên nhiều trang tính như minh họa trong ví dụ bên dưới.

    Giả sử bạn có ba danh sách dữ liệu đồng nhất trong ba trang tính khác nhau (số văn phòng trong ví dụ này) và bạn muốn nhận phần mở rộng cho một số nhất định.

    Giả sử giá trị tra cứu nằm trong ô A2 trong trang tính hiện tại và phạm vi tra cứu là A2:B5 trong 3 trang tính khác nhau (Bắc, Nam và Tây), công thức sau đây có hiệu quả:

    =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),"Not found")))

    Vì vậy, "xiềng xích" của chúng ta Công thức Vlookups" tìm kiếm trong ba trang tính khác nhau theo thứ tự mà chúng tôi đã lồng chúng trong công thức và đưa ra kết quả khớp đầu tiên tìm thấy:

    Đây là cách bạn sử dụng IFERROR với VLOOKUP trong Excel. Tôi cảm ơn bạn đã đọc và hy vọng sẽ gặp bạntrên blog của chúng tôi vào tuần tới!

    Có sẵn các bản tải xuống

    Ví dụ về công thức Excel IFERROR VLOOKUP

    Michael Brown là một người đam mê công nghệ chuyên dụng với niềm đam mê đơn giản hóa các quy trình phức tạp bằng các công cụ phần mềm. Với hơn một thập kỷ kinh nghiệm trong ngành công nghệ, anh ấy đã trau dồi kỹ năng của mình trong Microsoft Excel và Outlook, cũng như Google Trang tính và Tài liệu. Blog của Michael dành để chia sẻ kiến ​​thức và chuyên môn của anh ấy với những người khác, cung cấp các mẹo và hướng dẫn dễ thực hiện để cải thiện năng suất và hiệu quả. Cho dù bạn là một chuyên gia dày dạn kinh nghiệm hay người mới bắt đầu, blog của Michael đều cung cấp những hiểu biết có giá trị và lời khuyên thiết thực để tận dụng tối đa những công cụ phần mềm thiết yếu này.