Menu

Thắc mắc về cách kết hợp hàm INDEX và MATCH để tra cứu linh hoạt hơn VLOOKUP

Cù Khải Định 30/03/2026 22:47 590 lượt xem 2 trả lời

Chào mọi người,

Mình đang làm báo cáo và thường xuyên phải tra cứu dữ liệu giữa các bảng. Mình đang dùng VLOOKUP khá nhiều nhưng đôi khi gặp phải hạn chế, đặc biệt là khi cột cần tra cứu nằm bên trái của cột trả về. Mình có nghe nói về cặp đôi INDEXMATCH có thể giải quyết vấn đề này và linh hoạt hơn nhiều.

Tuy nhiên, mình vẫn chưa hình dung rõ cách kết hợp hai hàm này như thế nào cho hiệu quả. Cụ thể:

  • MATCH dùng để làm gì trong trường hợp này? Nó trả về vị trí tương đối của một giá trị phải không?
  • INDEX sẽ lấy dữ liệu dựa trên vị trí mà MATCH trả về như thế nào?
  • Có ví dụ thực tế nào để mình dễ hình dung không? Ví dụ, mình có một bảng dữ liệu về sản phẩm (Mã SP, Tên SP, Giá, Tồn kho) và mình muốn tra cứu Tên SP dựa vào Mã SP, nhưng Mã SP lại nằm ở cột thứ 2 thay vì cột đầu tiên.

Rất mong các cao thủ Excel chỉ giáo thêm về cách dùng cặp hàm INDEXMATCH. Liệu nó có phức tạp hơn VLOOKUP nhiều không?

Cảm ơn mọi người đã đọc bài!

3

Chào bạn,

Rất vui được chia sẻ về cặp đôi INDEX và MATCH, đúng là "vũ khí bí mật" giúp giải quyết những hạn chế của VLOOKUP. Về câu hỏi của bạn:

MATCH trong trường hợp này có nhiệm vụ tìm vị trí tương đối của giá trị bạn cần tìm (trong lookup_value) trong một mảng dữ liệu (lookup_array). Ví dụ, nếu bạn tìm mã sản phẩm "A123" trong cột mã sản phẩm và nó nằm ở hàng thứ 5, MATCH sẽ trả về số 5.

Sau đó, INDEX sẽ dùng chính con số vị trí này để lấy giá trị tương ứng từ một cột khác (cột bạn muốn trả về). Như vậy, bạn không còn bị giới hạn bởi việc cột trả về phải nằm bên phải cột tra cứu nữa.

Bạn thử hình dung thế này: MATCH giống như "người chỉ đường", chỉ cho INDEX biết "đến đúng số nhà đó đi", còn INDEX thì "lấy đồ ở số nhà đó về".

Bạn có thể chia sẻ thêm về cấu trúc bảng dữ liệu của bạn không? Mình có thể đưa ra một ví dụ cụ thể hơn để bạn dễ hình dung.

0

Hay quá bạn ơi! Đúng là INDEX và MATCH là bộ đôi "cứu cánh" cho nhiều trường hợp mà VLOOKUP bó tay thật.

Về câu hỏi của bạn về vai trò của MATCH: Nó giống như bạn đang đi tìm một cuốn sách trên kệ vậy đó. Bạn biết tên cuốn sách (lookup_value) và bạn quét qua các tên sách trên kệ (lookup_array). MATCH sẽ cho bạn biết cuốn sách đó nằm ở vị trí thứ mấy trên kệ (trả về số thứ tự).

Sau đó, INDEX sẽ nhận con số thứ tự đó và đi lấy đúng cuốn sách ở vị trí đó. Điều tuyệt vời là bạn có thể chỉ định INDEX lấy sách từ kệ khác (chỉ cần biết kệ đó là gì), chứ không bị bó buộc phải lấy từ kệ ngay bên cạnh như VLOOKUP.

Bạn có thể cho mình biết ví dụ cụ thể về 2 cột bạn muốn tra cứu và 1 cột bạn muốn lấy kết quả không? Mình sẽ thử đưa ra công thức mẫu cho bạn xem thử.

5

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký