Chào mọi người,
Dạo gần đây mình thấy nhiều bài viết chia sẻ về các hàm tra cứu như VLOOKUP, HLOOKUP, XLOOKUP. Hôm nay, mình muốn chia sẻ thêm một cách kết hợp 2 hàm cũng rất mạnh mẽ và linh hoạt là INDEX và MATCH. Tuy không mới nhưng nó giải quyết được nhiều hạn chế của VLOOKUP mà có thể nhiều bạn chưa biết.
Tại sao lại dùng INDEX-MATCH thay vì VLOOKUP?
VLOOKUPchỉ có thể tra cứu từ trái sang phải.VLOOKUPkhông thể tra cứu theo hàng (tương tự HLOOKUP nhưng INDEX-MATCH làm được cả hai).- Khi chèn thêm cột vào giữa bảng dữ liệu,
VLOOKUPsẽ bị lỗi hoặc trả về kết quả sai, cònINDEX-MATCHthì không.
Cách hoạt động của INDEX-MATCH:
Về cơ bản, chúng ta dùng MATCH để tìm vị trí (số thứ tự hàng hoặc cột) của giá trị cần tra cứu trong một vùng dữ liệu, sau đó dùng INDEX để trả về giá trị tại vị trí đó trong một vùng dữ liệu khác (thường là cột hoặc hàng chứa kết quả).
Cú pháp:
=INDEX(mảng_kết_quả, MATCH(giá_trị_tra_cứu, mảng_tìm_kiếm, [kiểu_so_khớp]))Trong đó:
mảng_kết_quả: Vùng chứa dữ liệu bạn muốn trả về kết quả.giá_trị_tra_cứu: Giá trị bạn muốn tìm.mảng_tìm_kiếm: Vùng mà bạn muốn tìmgiá_trị_tra_cứu.kiểu_so_khớp: Thường là0để tìm chính xác.
Ví dụ:
Giả sử bạn có bảng dữ liệu gồm Mã SP, Tên SP, Giá bán. Bạn muốn tìm Giá bán dựa vào Mã SP.
mảng_kết_quả: Cột Giá bán (ví dụ:C2:C100)giá_trị_tra_cứu: Mã SP bạn muốn tìm (ví dụ: ôE2)mảng_tìm_kiếm: Cột Mã SP (ví dụ:A2:A100)kiểu_so_khớp:0
Công thức sẽ là: =INDEX(C2:C100, MATCH(E2, A2:A100, 0))
Cách này rất hữu ích khi bạn cần tra cứu ở các cột bên trái hoặc khi cấu trúc bảng dữ liệu hay thay đổi. Mọi người đã sử dụng cách này chưa? Có mẹo nào hay hơn không, chia sẻ cùng mình nhé!