Chào các bạn trong diễn đàn,
Dạo gần đây mình thấy nhiều bạn hỏi về cách khắc phục lỗi khi dùng VLOOKUP, đặc biệt là khi cột cần tra cứu không nằm bên trái hoặc khi cần tra cứu từ phải sang trái. Bản thân mình cũng từng gặp khó khăn này. Hôm nay mình muốn chia sẻ một cách kết hợp 2 hàm INDEX và MATCH để giải quyết vấn đề này một cách hiệu quả.
Tại sao nên dùng INDEX và MATCH thay vì VLOOKUP?
- Linh hoạt hơn: Có thể tra cứu dữ liệu ở bất kỳ cột nào, không nhất thiết phải là cột bên trái của cột trả về.
- Hiệu suất tốt hơn: Với các bảng dữ liệu lớn, INDEX và MATCH thường cho tốc độ xử lý nhanh hơn VLOOKUP.
- Ít lỗi hơn: Giảm thiểu các lỗi như #N/A khi cấu trúc bảng thay đổi.
Cách dùng cơ bản:
Cú pháp của hàm MATCH là:
MATCH(lookup_value, lookup_array, [match_type])Hàm này trả về vị trí tương đối của một giá trị trong một mảng.
Cú pháp của hàm INDEX là:
INDEX(array, row_num, [column_num])Hàm này trả về giá trị tại một vị trí xác định trong một mảng.
Kết hợp lại, chúng ta sẽ dùng MATCH để tìm ra số dòng cần lấy, sau đó dùng INDEX để trả về giá trị tại dòng đó và cột mong muốn:
=INDEX(Cột_trả_về, MATCH(Giá_trị_tra_cứu, Cột_tra_cứu, 0))Ví dụ: Giả sử bạn có bảng dữ liệu với Mã SP ở cột A, Tên SP ở cột B, Đơn giá ở cột C. Bạn muốn tìm Đơn giá khi biết Mã SP.
Công thức sẽ là:
=INDEX(C:C, MATCH(Mã_SP_cần_tìm, A:A, 0))Cách này rất hữu ích khi bạn làm việc với các file dữ liệu lớn hoặc khi cấu trúc bảng thường xuyên thay đổi. Hy vọng chia sẻ này giúp ích cho các bạn đang tự học Excel Online!
Có bạn nào có cách dùng hay hơn hoặc gặp vấn đề gì với INDEX-MATCH thì cùng thảo luận nhé!