INDEX MATCH Trong Excel: Tra Cứu Dữ Liệu Linh Hoạt Hơn VLOOKUP
Chia sẻ
"Hướng dẫn chi tiết cách kết hợp hàm INDEX và MATCH để tra cứu dữ liệu linh hoạt, tra ngược, tra 2 chiều — vượt xa giới hạn VLOOKUP."
1. Tại sao INDEX MATCH tốt hơn VLOOKUP?
VLOOKUP chỉ tra cứu được sang phải — giá trị tìm phải nằm ở cột đầu tiên của bảng. Nếu bạn cần tra ngược (tìm sang trái), tra 2 chiều, hoặc xử lý bảng dữ liệu hay thay đổi, INDEX MATCH là lựa chọn vượt trội.
Giới hạn VLOOKUP | INDEX MATCH giải quyết |
|---|---|
Chỉ tra sang phải | ✅ Tra mọi hướng |
Dễ lỗi khi thêm/xóa cột | ✅ Không ảnh hưởng |
Chậm trên dữ liệu lớn | ✅ Nhanh hơn |
Không tra 2 chiều | ✅ Kết hợp INDEX MATCH MATCH |
2. Hiểu từng hàm riêng biệt
2.1. Hàm MATCH — Tìm vị trí
=MATCH(giá_trị_tìm, vùng_1_cột, kiểu_khớp)MATCH trả về số thứ tự (vị trí) của giá trị trong một hàng hoặc cột.
kiểu_khớp | Ý nghĩa |
|---|---|
0 | Khớp chính xác (dùng nhiều nhất) |
1 | Khớp gần đúng, sắp xếp tăng |
-1 | Khớp gần đúng, sắp xếp giảm |
Ví dụ: Tìm vị trí của "Bình" trong danh sách nhân viên ở A2:A10:
=MATCH("Bình", A2:A10, 0)Kết quả: 3 (nếu "Bình" ở vị trí thứ 3).
2.2. Hàm INDEX — Lấy giá trị theo vị trí
=INDEX(vùng_dữ_liệu, hàng, [cột])INDEX trả về giá trị tại hàng thứ N trong vùng dữ liệu.
=INDEX(C2:C10, 3)Trả về giá trị ở hàng thứ 3 trong vùng C2:C10.
3. Kết hợp INDEX MATCH — Công thức tra cứu hoàn hảo
=INDEX(cột_kết_quả, MATCH(giá_trị_tìm, cột_tra_cứu, 0))Logic: MATCH tìm vị trí → INDEX lấy giá trị tại vị trí đó.
3.1. Ví dụ 1: Tra cứu giá theo mã sản phẩm
Bảng dữ liệu:
Mã SP (A) | Tên SP (B) | Giá (C) |
|---|---|---|
SP001 | Laptop Dell | 18,000,000 |
SP002 | Chuột Logitech | 450,000 |
SP003 | Bàn phím cơ | 1,200,000 |
Tra giá của SP002:
=INDEX(C2:C100, MATCH("SP002", A2:A100, 0))Kết quả: 450,000
3.2. Ví dụ 2: Tra ngược — tìm mã SP từ tên
VLOOKUP không làm được điều này, nhưng INDEX MATCH thì dễ:
=INDEX(A2:A100, MATCH("Chuột Logitech", B2:B100, 0))Kết quả: SP002
3.3. Ví dụ 3: Tra cứu với tham chiếu ô
=INDEX($C$2:$C$100, MATCH(F1, $A$2:$A$100, 0))Ô F1 chứa mã sản phẩm cần tìm. Đổi F1 → kết quả tự cập nhật.
4. Tra cứu 2 chiều: INDEX MATCH MATCH
Tra cứu theo cả hàng và cột — ví dụ tra doanh số của nhân viên X vào tháng Y:
=INDEX(B2:M10, MATCH("An", A2:A10, 0), MATCH("Tháng 3", B1:M1, 0))Tháng 1 | Tháng 2 | Tháng 3 | |
|---|---|---|---|
An | 10 | 15 | 20 |
Bình | 12 | 18 | 22 |
Kết quả: 20 (doanh số của An trong Tháng 3).
5. Tra cứu với nhiều điều kiện
Khi cần tìm theo 2+ tiêu chí (ví dụ: tìm giá của sản phẩm X ở kho Y):
5.1. Cách 1: Nối tiêu chí (Concatenate)
=INDEX(D2:D100, MATCH(F1&F2, A2:A100&B2:B100, 0))Lưu ý: Đây là công thức mảng — nhấn Ctrl+Shift+Enter (hoặc tự động trong Excel 365).
5.2. Cách 2: Dùng cột phụ
Tạo cột E = A&"-"&B, sau đó tra cứu bình thường:
=INDEX(D2:D100, MATCH(F1&"-"&F2, E2:E100, 0))6. Xử lý lỗi
Bọc trong IFERROR để tránh hiển thị #N/A:
=IFERROR(INDEX(C2:C100, MATCH(F1, A2:A100, 0)), "Không tìm thấy")7. So sánh tốc độ trên dữ liệu lớn
Kích thước | VLOOKUP | INDEX MATCH |
|---|---|---|
1,000 dòng | Như nhau | Như nhau |
50,000 dòng | 2-3 giây | 1-2 giây |
500,000 dòng | 10-15 giây | 3-5 giây |
INDEX MATCH nhanh hơn vì MATCH tìm kiếm trên 1 cột, trong khi VLOOKUP quét toàn bộ bảng.
8. Khi nào dùng XLOOKUP thay INDEX MATCH?
Nếu bạn dùng Excel 365/2021, XLOOKUP là giải pháp tốt nhất:
=XLOOKUP(F1, A2:A100, C2:C100, "Không tìm thấy")Tuy nhiên, INDEX MATCH vẫn cần thiết khi:
Chia sẻ file với người dùng Excel cũ hơn
Cần tra 2 chiều (XLOOKUP cần lồng 2 tầng)
Cần tương thích Google Sheets
9. Tổng kết
INDEX MATCH là bộ đôi tra cứu mạnh nhất trong Excel truyền thống. Linh hoạt hơn VLOOKUP ở mọi khía cạnh: tra ngược, tra 2 chiều, ổn định khi thay đổi cấu trúc bảng, và nhanh hơn trên dữ liệu lớn. Nếu bạn đang dùng VLOOKUP hàng ngày, hãy dành 30 phút học INDEX MATCH — đầu tư này sẽ đáng giá trong suốt sự nghiệp làm việc với Excel.
Bình luận
Đăng nhập để tham gia bình luận
Đăng nhậpNhận bài viết mới nhất
Đăng ký để nhận thông báo khi có bài viết mới. Không spam, chỉ kiến thức chất lượng.
