Chào mọi người, dạo gần đây mình có làm việc với một file excel khá lớn, cần trích xuất thông tin dựa trên nhiều điều kiện. Mình đã thử dùng VLOOKUP nhưng gặp phải hạn chế về việc chỉ dò tìm theo cột đầu tiên. Sau đó, mình chuyển sang dùng cặp hàm INDEX và MATCH, và nó thực sự mạnh mẽ hơn nhiều!
Tuy nhiên, trong quá trình sử dụng, mình cũng gặp phải lỗi #N/A khi hàm MATCH không tìm thấy giá trị dò tìm trong mảng. Lỗi này khá phổ biến khi dữ liệu nguồn có thể bị thay đổi, thêm bớt hoặc đơn giản là không có sự khớp hoàn toàn.
Thay vì chỉ nhận về lỗi #N/A và bó tay, mình đã tìm hiểu và áp dụng cách xử lý nó một cách gọn gàng bằng hàm IFERROR. Cách này giúp trả về một giá trị tùy chỉnh (ví dụ: "Không tìm thấy", "Trống", hoặc 0) thay vì hiển thị lỗi khó chịu.
Cú pháp cơ bản mà mình hay dùng là:
=IFERROR(INDEX(vùng_trả_về, MATCH(giá_trị_tìm, vùng_tìm, 0)), "Thông báo khi lỗi")Trong đó:
vùng_trả_về: Là mảng chứa các giá trị bạn muốn lấy ra.giá_trị_tìm: Giá trị bạn muốn dò tìm.vùng_tìm: Mảng chứa giá trị tìm kiếm. Số 0 ở cuối để đảm bảo dò tìm chính xác tuyệt đối."Thông báo khi lỗi": Chuỗi văn bản hoặc giá trị bạn muốn hiển thị nếu hàm MATCH không tìm thấy kết quả.
Ví dụ cụ thể, nếu bạn muốn tìm tên sản phẩm dựa trên mã sản phẩm trong một danh sách:
=IFERROR(INDEX(B2:B100, MATCH(E2, A2:A100, 0)), "Mã SP không tồn tại")Với cách này, file của mình trông chuyên nghiệp hơn hẳn và dễ dàng cho người khác đọc hiểu. Không biết mọi người còn cách nào hay hơn để xử lý lỗi #N/A với INDEX/MATCH không? Chia sẻ cho mình với nhé!