Chào mọi người,
Mình thấy trên diễn đàn có nhiều bài viết về VLOOKUP, nhưng đôi khi VLOOKUP lại không đáp ứng được hết các nhu cầu, đặc biệt là khi cần tra cứu sang bên trái hoặc khi bảng dữ liệu quá lớn.
Hôm nay, mình muốn chia sẻ một cặp hàm cực kỳ mạnh mẽ và linh hoạt mà mình thường dùng thay thế VLOOKUP, đó là INDEX và MATCH.
Tại sao nên dùng INDEX & MATCH thay VLOOKUP?
- Linh hoạt: Có thể tra cứu sang trái, tra cứu theo hàng hoặc theo cột.
- Hiệu suất: Thường nhanh hơn VLOOKUP với các bảng dữ liệu lớn.
- Ít lỗi hơn: Ít bị ảnh hưởng khi thêm hoặc xóa cột trong bảng dữ liệu.
Cách dùng cơ bản:
Cú pháp kết hợp là:
=INDEX(mảng_trả_về, MATCH(giá_trị_tìm_kiếm, mảng_tìm_kiếm, [kiểu_so_sánh]))Trong đó:
INDEX(mảng_trả_về, ...): Trả về giá trị tại vị trí giao nhau giữa một hàng và một cột trong một mảng.MATCH(giá_trị_tìm_kiếm, mảng_tìm_kiếm, [kiểu_so_sánh]): Trả về vị trí tương đối của một mục trong một mảng khớp với một giá trị được chỉ định.kiểu_so_sánh = 0: Tìm kiếm khớp chính xác (thường dùng nhất).
Ví dụ thực tế:
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 Tên SP (cột B) dựa vào Mã SP (cột A).
Công thức sẽ là:
=INDEX(B2:B100, MATCH(E2, A2:A100, 0))Ở đây:
B2:B100là mảng chứa Tên SP (mảng trả về).E2là ô chứa Mã SP bạn muốn tìm.A2:A100là mảng chứa Mã SP (mảng tìm kiếm).0là kiểu so sánh khớp chính xác.
Nếu bạn muốn tra cứu ngược lại, ví dụ tìm Mã SP dựa vào Tên SP, bạn chỉ cần đảo mảng:
=INDEX(A2:A100, MATCH(F2, B2:B100, 0))Hy vọng chia sẻ này hữu ích cho mọi người. Nếu có thắc mắc hoặc cách dùng nào khác, mọi người cùng thảo luận nhé!