Bỏ qua để đến nội dung chính
Điền NguyễnAZ

excel

INDEX MATCH trong Excel: giải pháp thay thế VLOOKUP mạnh hơn (kèm ví dụ)

04/09/2026· Điền Nguyễn AZ
INDEX MATCH trong Excel: giải pháp thay thế VLOOKUP mạnh hơn (kèm ví dụ)

Vì sao cần INDEX MATCH khi đã có VLOOKUP?

VLOOKUP rất phổ biến, nhưng có ba giới hạn khiến nhiều người dùng lâu năm chuyển sang INDEX MATCH:

  • Chỉ tra cứu từ trái sang phải — cột chứa giá trị cần tìm luôn phải nằm bên trái cột kết quả. Muốn tra ngược lại (tìm mã nhân viên dựa vào tên, khi cột Tên nằm bên phải cột Mã) thì VLOOKUP không làm được trực tiếp.
  • Dễ vỡ công thức khi chèn/xóa cột — VLOOKUP dùng số thứ tự cột cố định (col_index_num). Chỉ cần chèn thêm 1 cột vào giữa bảng, số thứ tự này lệch và công thức trả về sai kết quả mà không báo lỗi.
  • Chậm hơn với bảng dữ liệu lớn — VLOOKUP phải quét lại toàn bộ cột table_array mỗi lần tính, trong khi INDEX MATCH có thể giới hạn đúng vùng cần thiết, nhẹ hơn khi file có hàng chục nghìn dòng.

INDEX MATCH là cách kết hợp 2 hàm riêng biệt để giải quyết cả ba vấn đề trên. Ví dụ dữ liệu dùng xuyên suốt bài này:

A B C D
1 Mã NV Họ tên Phòng ban Lương
2 NV01 Nguyễn Văn An Kế toán 9,500,000
3 NV02 Trần Thị Bình Kinh doanh 11,000,000
4 NV03 Lê Văn Cường Kế toán 8,800,000
5 NV04 Phạm Thị Dung Kỹ thuật 10,200,000

Hàm INDEX: lấy giá trị theo vị trí

Cú pháp

=INDEX(array, row_num, [column_num])

Trong đó:

  • array: vùng dữ liệu chứa giá trị cần lấy.
  • row_num: số thứ tự dòng (tính từ dòng đầu tiên của array, không phải số dòng thật trên sheet).
  • column_num: số thứ tự cột (bỏ trống nếu array chỉ có 1 cột).

Ví dụ

=INDEX(B2:B5, 3)

Lấy giá trị ở dòng thứ 3 trong vùng B2:B5, tức là ô B4 → kết quả Lê Văn Cường.

Tự dùng INDEX một mình không có nhiều ý nghĩa vì phải tự đếm dòng thứ mấy — sức mạnh thật sự nằm ở việc kết hợp với MATCH để tự động tìm ra con số đó.

Hàm MATCH: tìm vị trí của một giá trị

Cú pháp

=MATCH(lookup_value, lookup_array, [match_type])

Trong đó:

  • lookup_value: giá trị cần tìm vị trí.
  • lookup_array: vùng (1 cột hoặc 1 dòng) để tìm trong đó.
  • match_type: 0 để tìm chính xác (dùng gần như luôn luôn khi tra cứu dữ liệu).

Ví dụ

=MATCH("NV03", A2:A5, 0)

Excel tìm "NV03" trong vùng A2:A5, thấy nó ở vị trí thứ 3 tính từ đầu vùng → kết quả trả về là 3 (không phải "A4", MATCH chỉ trả về số thứ tự).

Kết hợp INDEX + MATCH: công thức tra cứu hoàn chỉnh

Ghép hai hàm lại: dùng MATCH để tìm vị trí của giá trị cần tra, rồi đưa vị trí đó vào INDEX để lấy kết quả.

Cú pháp kết hợp

=INDEX(cột_kết_quả, MATCH(giá_trị_cần_tìm, cột_tra_cứu, 0))

Ví dụ 1: Tra cứu cơ bản (tương đương VLOOKUP)

Tìm họ tên của nhân viên có mã "NV03":

=INDEX(B2:B5, MATCH("NV03", A2:A5, 0))

Excel chạy MATCH trước, tìm ra "NV03" ở vị trí 3, sau đó INDEX lấy giá trị ở vị trí 3 trong cột B → kết quả Lê Văn Cường. Kết quả giống hệt việc dùng =VLOOKUP("NV03", A2:B5, 2, FALSE).

Ví dụ 2: Tra cứu ngược — điều VLOOKUP không làm được

Tìm mã nhân viên dựa vào họ tên "Phạm Thị Dung" (cột Tên ở bên phải, cột Mã ở bên trái):

=INDEX(A2:A5, MATCH("Phạm Thị Dung", B2:B5, 0))

Kết quả: NV04. VLOOKUP không thể tra theo chiều này vì cột kết quả (Mã NV) nằm bên trái cột tra cứu (Họ tên) — INDEX MATCH không quan tâm thứ tự cột trước hay sau, vì hai vùng tham chiếu là độc lập.

Ví dụ 3: Tham chiếu giá trị cần tìm từ một ô

Giống SUMIF/VLOOKUP, nên tham chiếu ô thay vì gõ cứng để dễ thay đổi:

=INDEX(D2:D5, MATCH(F1, A2:A5, 0))

Với F1 là ô chứa mã nhân viên cần tra — đổi giá trị ở F1, kết quả lương tự cập nhật.

MATCH 2 chiều: tra cứu theo cả hàng và cột

Khi bảng dữ liệu có tiêu đề dòng và tiêu đề cột (ví dụ bảng doanh thu theo Sản phẩm × Tháng), có thể lồng 2 hàm MATCH để tìm đúng ô giao nhau:

=INDEX(vùng_dữ_liệu, MATCH(giá_trị_dòng, cột_tiêu_đề_dòng, 0), MATCH(giá_trị_cột, dòng_tiêu_đề_cột, 0))

Đây là dạng bài mà VLOOKUP một hàm gần như không xử lý được gọn — phải kết hợp thêm HLOOKUP hoặc dùng công thức mảng phức tạp hơn.

Vì sao chèn/xóa cột không làm hỏng công thức INDEX MATCH?

Với VLOOKUP, col_index_num là một con số cố định — chèn thêm 1 cột vào giữa bảng sẽ làm số thứ tự cột lệch đi mà Excel không tự cập nhật, dẫn đến kết quả sai âm thầm.

Với INDEX MATCH, cột kết quả (B2:B5 trong ví dụ trên) được tham chiếu trực tiếp bằng vùng ô. Khi chèn cột mới, Excel tự động điều chỉnh lại tham chiếu vùng đó theo đúng vị trí mới — công thức vẫn ra đúng kết quả mà không cần sửa gì.

Bảng so sánh nhanh VLOOKUP và INDEX MATCH

VLOOKUP INDEX MATCH
Hướng tra cứu Chỉ từ trái sang phải Cả hai chiều
Khi chèn/xóa cột Dễ sai kết quả (lệch col_index_num) Tự động đúng
Độ phức tạp công thức Đơn giản hơn, 1 hàm Phức tạp hơn, 2 hàm lồng nhau
Tốc độ với bảng lớn Chậm hơn Nhanh hơn
Tra cứu 2 chiều (dòng × cột) Cần kết hợp thêm HLOOKUP Lồng 2 MATCH trực tiếp

Lỗi thường gặp

Lỗi #N/A Do MATCH không tìm thấy giá trị khớp chính xác trong lookup_array — kiểm tra lại chính tả, khoảng trắng thừa, hoặc giá trị số bị lưu dưới dạng văn bản (căn trái thay vì căn phải trong ô).

Quên tham số match_type = 0 trong MATCH Nếu bỏ trống, Excel mặc định tìm gần đúng (yêu cầu dữ liệu đã sắp xếp tăng dần) chứ không phải tìm chính xác — dễ ra kết quả sai mà không báo lỗi. Luôn gõ rõ 0 khi tra cứu dữ liệu thông thường.

Vùng của INDEX và MATCH không cùng số dòng Ví dụ INDEX(B2:B5, MATCH(..., A2:A6, 0)) — vùng MATCH dài hơn vùng INDEX 1 dòng, dẫn đến kết quả lệch hoặc lỗi tham chiếu. Luôn để 2 vùng bắt đầu và kết thúc ở cùng một dòng.

Quên cố định vùng khi copy công thức Khi kéo công thức xuống các dòng khác, vùng array/lookup_array có thể bị dịch chuyển theo nếu chưa cố định bằng dấu $. Dùng phím F4 để chuyển thành $A$2:$A$5 trước khi copy.

Khi nào nên dùng INDEX MATCH thay vì VLOOKUP?

  • Bảng dữ liệu thường xuyên chèn/xóa cột trong quá trình làm việc
  • Cần tra cứu ngược (tìm giá trị ở cột bên trái dựa vào cột bên phải)
  • File có hàng chục nghìn dòng trở lên, cần tối ưu tốc độ tính toán
  • Cần tra cứu theo 2 điều kiện dòng và cột cùng lúc (dạng bảng ma trận)

Nếu bảng dữ liệu nhỏ, ổn định và không cần tra ngược, VLOOKUP vẫn là lựa chọn nhanh gọn, dễ đọc hơn cho người mới.

Học Excel thực chiến tại TP Vinh

INDEX MATCH là một trong những kỹ thuật tra cứu dữ liệu nâng cao giúp xử lý báo cáo linh hoạt và chính xác hơn. Nếu bạn muốn học Excel bài bản từ các hàm cơ bản đến kỹ thuật xử lý dữ liệu nâng cao, tham khảo khóa học Excel tại Điền Nguyễn AZ.

📞 Hotline / Zalo: 0362 465 361

👉 Xem chi tiết: Khóa học Excel thực tế tại TP Vinh

#index match excel#hàm index#hàm match#thay thế vlookup#excel nâng cao

Tài liệu miễn phí

30 phím tắt Excel hay dùng nhất

Tổng hợp phím tắt giúp thao tác Excel nhanh hơn — điền thông tin để tải file PDF miễn phí về dùng ngay.