Kết hợp hàm INDEX và MATCH trong Excel là cách tra cứu dữ liệu theo cả hàng lẫn cột: MATCH tìm vị trí của giá trị cần tra, INDEX lấy giá trị ở đúng vị trí đó. Công thức này tra được sang trái, tra hai chiều và không bị lệch khi chèn thêm cột, những việc VLOOKUP không làm được.
Ví dụ nhanh: =INDEX(B2:E5;MATCH("Hoa";A2:A5;0);MATCH("Q3";B1:E1;0)) → 155 (doanh số của Hoa trong quý 3)
Nguồn: tài liệu hàm INDEX và MATCH của Microsoft, đối chiếu ngày 07/10/2026. Áp dụng cho Excel cho Microsoft 365, Excel 2021, 2019, 2016 và các bản cũ hơn (ví dụ 4 cần Ctrl+Shift+Enter trên Excel 2019 trở xuống).

Cú pháp kết hợp INDEX và MATCH
Một MATCH cho số hàng là đủ khi tra một chiều; thêm MATCH thứ hai cho số cột khi tra hai chiều. Luôn dùng 0 ở cuối MATCH để tìm chính xác.
=INDEX(vùng_kết_quả; MATCH(giá_trị_hàng; cột_dò; 0); [MATCH(giá_trị_cột; hàng_dò; 0)])
| Đối số | Bắt buộc? | Ý nghĩa |
|---|---|---|
vùng_kết_quả |
Có | Vùng chứa giá trị cần lấy (một cột, hoặc cả bảng khi tra hai chiều). |
MATCH(...; cột_dò; 0) |
Có | Vị trí hàng: tìm giá trị trong một cột cùng số dòng với vùng kết quả. |
MATCH(...; hàng_dò; 0) |
Không | Vị trí cột: tìm tiêu đề trong hàng tiêu đề, dùng khi tra hai chiều. |
Ví dụ 1: Tra ngược sang trái theo mã
Mã nhân viên nằm ở cột C, bên phải cột Tên. VLOOKUP không lấy được cột bên trái, còn INDEX + MATCH làm được.
| A | B | C | |
|---|---|---|---|
| 1 | Tên | Phòng | Mã NV |
| 2 | Lan | KD | NV01 |
| 3 | Minh | KT | NV02 |
| 4 | Hoa | KD | NV03 |
| 5 | Tuấn | HC | NV04 |
| Ô | Công thức | Kết quả | Giải thích |
|---|---|---|---|
| E2 | =INDEX(A2:A5;MATCH("NV03";C2:C5;0)) |
Hoa | NV03 ở vị trí 3 của cột C; tên ở vị trí 3 là Hoa |
Ví dụ 2: Tra hai chiều theo tên và quý
Bảng doanh số theo quý ở A1:E5. MATCH thứ nhất tìm hàng của Hoa, MATCH thứ hai tìm cột Q3.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Nhân viên | Q1 | Q2 | Q3 | Q4 |
| 2 | Lan | 120 | 130 | 140 | 150 |
| 3 | Minh | 90 | 100 | 110 | 95 |
| 4 | Hoa | 150 | 160 | 155 | 170 |
| 5 | Tuấn | 80 | 85 | 90 | 100 |
| Ô | Công thức | Kết quả | Giải thích |
|---|---|---|---|
| G2 | =INDEX(B2:E5;MATCH("Hoa";A2:A5;0);MATCH("Q3";B1:E1;0)) |
155 | Hàng 3, cột 3 của vùng B2:E5 |
| G3 | =INDEX(B2:E5;MATCH("Minh";A2:A5;0);MATCH("Q4";B1:E1;0)) |
95 | Hàng 2, cột 4 |

Ví dụ 3: Tìm người có doanh số cao nhất
MAX tìm doanh số cao nhất quý 4, MATCH tìm vị trí của nó, INDEX trả về tên.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Nhân viên | Q1 | Q2 | Q3 | Q4 |
| 2 | Lan | 120 | 130 | 140 | 150 |
| 3 | Minh | 90 | 100 | 110 | 95 |
| 4 | Hoa | 150 | 160 | 155 | 170 |
| 5 | Tuấn | 80 | 85 | 90 | 100 |
| Ô | Công thức | Kết quả | Giải thích |
|---|---|---|---|
| G2 | =INDEX(A2:A5;MATCH(MAX(E2:E5);E2:E5;0)) |
Hoa | Cao nhất quý 4 là 170 |
| G3 | =INDEX(A2:A5;MATCH(MIN(B2:B5);B2:B5;0)) |
Tuấn | Thấp nhất quý 1 là 80 |
Ví dụ 4: Tra theo hai điều kiện
Nhân hai điều kiện để tạo mảng 1/0, MATCH tìm số 1 đầu tiên. Trên Excel cho Microsoft 365 và Excel 2021 nhấn Enter bình thường; bản cũ hơn cần nhấn Ctrl+Shift+Enter.
| A | B | C | |
|---|---|---|---|
| 1 | Nhân viên | Tháng | Doanh số |
| 2 | Lan | 1 | 120 |
| 3 | Lan | 2 | 135 |
| 4 | Minh | 1 | 90 |
| 5 | Minh | 2 | 105 |
| Ô | Công thức | Kết quả | Giải thích |
|---|---|---|---|
| E2 | =INDEX(C2:C5;MATCH(1;(A2:A5="Minh")*(B2:B5=2);0)) |
105 | Dòng thoả cả “Minh” và tháng 2 |
Lỗi thường gặp khi kết hợp INDEX và MATCH
| Lỗi | Nguyên nhân | Cách sửa |
|---|---|---|
#N/A |
MATCH không tìm thấy giá trị hàng hoặc tiêu đề cột (sai chính tả, thừa dấu cách). | Kiểm tra lại giá trị; bọc công thức trong IFERROR. |
#REF! |
MATCH trả về vị trí lớn hơn kích thước vùng của INDEX, do hai vùng không cùng số dòng hoặc số cột. | Cho cột dò và vùng kết quả cùng bắt đầu, cùng kết thúc ở một dòng. |
Kết quả lệch một dòng |
Vùng dò bắt đầu từ dòng 1 (tiêu đề) còn vùng kết quả bắt đầu từ dòng 2. | Chọn hai vùng cùng phạm vi dòng. |
#VALUE! ở ví dụ hai điều kiện |
Nhấn Enter thường trên Excel 2019 trở xuống. | Nhấn Ctrl+Shift+Enter để nhập công thức mảng. |
Khi nào dùng INDEX + MATCH thay VLOOKUP?
| Tình huống | VLOOKUP | INDEX + MATCH |
|---|---|---|
| Cột kết quả nằm bên trái cột dò | Không làm được | Làm được |
| Chèn thêm cột vào bảng | Phải sửa số thứ tự cột | Không cần sửa |
| Tra hai chiều (hàng và cột) | Phải lồng thêm MATCH | Làm trực tiếp |
Ôn lại từng hàm: hàm INDEX, hàm MATCH, hàm VLOOKUP; danh sách đầy đủ ở bài các hàm trong Excel.
Tải file Excel mẫu
File mẫu gồm 4 trang tính, mỗi trang là một ví dụ ở trên với công thức để sẵn; Excel tự tính lại khi mở. Tải file Excel mẫu (.xlsx).
Câu hỏi thường gặp
INDEX MATCH có nhanh hơn VLOOKUP không?
Với bảng lớn, INDEX + MATCH chỉ đọc hai cột cần thiết nên thường nhẹ hơn khi bảng có nhiều cột, nhưng với bảng nhỏ khác biệt không đáng kể.
Excel mới có hàm nào thay INDEX MATCH không?
Excel cho Microsoft 365 và Excel 2021 có XLOOKUP, làm được việc tra ngược và tra theo điều kiện với cú pháp ngắn hơn.
INDEX MATCH có tra được ở sheet khác không?
Có. Ghi tên sheet trước từng vùng, ví dụ =INDEX(Sheet2!A2:A5;MATCH("NV03";Sheet2!C2:C5;0)).
Xem thêm các thủ thuật khác tại ITGO.



