Sự kết hợp của hàm INDEX kết hợp với hàm MATCH sẽ đem lại sự linh hoạt hơn trong việc dò tìm so với các hàm khác trong Excel. HASUKA sẽ chỉ bạn cách sử dụng 2 hàm này kết hợp với nhau trong bài viết sau nhé.

1. Sự khác nhau giữa hàm INDEX + MATCH và hàm VLOOKUP, HLOOKUP

Hàm VLOOKUPHLOOKUP là 2 hàm dò tìm dữ liệu và phổ biến với nhiều người. Tuy nhiên, hàm VLOOKUP, HLOOKUP có giới hạn đó là giá trị trả về phải nằm ở cột bên phải so với giá trị dò tìm với hàm VLOOKUP và nằm ở cột bên dưới với hàm HLOOKUP.

Ở ví dụ bên dưới, ta có thể dùng hàm VLOOKUP và HLOOKUP để dò tìm giá trị cho cột Tên hãng và hàng Tên hãng trong 2 bảng màu vàng từ 2 bảng dữ liệu màu xanh.

Có thể sử dụng hàm VLOOKUP

Nếu thứ tự bảng màu xanh đảo ngược lại, bạn không thể sử dụng hàm VLOOKUP và HLOOKUP nữa.

Không thể sử dụng hàm VLOOKUP và HLOOKUP

Như vậy, nếu bạn cần dò tìm giá trị theo chiều ngược lại, hàm INDEX kết hợp với hàm MATCH sẽ giúp bạn giải quyết vấn đề này.

Ngoài ra, các lợi ích khác khi dùng hàm INDEX kết hợp với hàm MATCH so với hàm VLOOKUP, HLOOKUP đó là:

  • Chèn hay xóa cột một cách an toàn: Vì hàm MATCH giúp xác định rõ cột chứa giá trị cần tìm một cách trực tiếp 
  • Không đặt giới hạn cho kích thước dữ liệu cần tìm: Với hàm VLOOKUP và HLOOKUP thì giá trị cần tìm kiếm không được vượt quá 255 ký tự. 
  • Tốc độ xử lý nhanh hơn: Việc sử dụng hàm INDEX kết hợp hàm MATCH sẽ tăng tốc độ xử lý nhanh hơn từ 10% đến 15% trong bảng tính lớn.

Xem thêm: Hàm SUMIF

2. Hàm INDEX và hàm MATCH

Công thức hàm INDEX

Hàm INDEX trả về giá trị theo vị trí của hàng và cột trong một bảng hoặc một phạm vi.

=INDEX(array;row_num;column_num)

Trong đó:

  • array: vùng ô hoặc một hàng số mảng nào đó;
  • row_num: chọn hàng trong mảng từ đó trả về một giá trị;
  • column: chọn cột trong mảng từ đó trả về một giá trị.

Công thức hàm MATCH

Hàm MATCH trả về vị trí tương đối của một giá trị trong một phạm vi.

=MATCH(lookup_value,lookup_array,match_type)

Trong đó:

  • Lookup_value: giá trị tìm kiếm trong mảng Lookup_array.
  • Lookup_array: mảng hay phạm vị ô được tìm kiếm.
  • Match_type: kiểu tìm kiếm.

3. Ví dụ hàm INDEX kết hợp hàm MATCH

Giả sử ta có đơn giá theo Sản phẩm và Hãng sản xuất trong Bảng 2 (B15:E18). Dựa theo bảng 2, ta cần điền đơn giá vào Bảng 1 (B3:D12).

Điền đơn giá cho Bảng 1 dựa vào Bảng 2

Cách ta sử dụng hàm INDEX kết hợp hàm MATCH để dò tìm giá trị cho ô D4 như sau:

1. Sử dụng hàm MATCH để xác định vị trí hàng tương ứng của sản phẩm CDRom trong phạm vi B15:B18 của Bảng 2: 

=MATCH(B4,$B$15:$B$18,0)

Kết quả 4 tương ứng với hàng số 4 trong Bảng 2.

Sử dụng hàm MATCH để xác định vị trí hàng

2. Sử dụng hàm MATCH để xác định vị trí cột tương ứng của hãng sản xuất Samsung trong phạm vi B15:E15: 

=MATCH(C4,$B$15:$E$15,0)

Kết quả 2 tương ứng với cột số 2 trong Bảng 2.

Sử dụng hàm MATCH để xác định vị trí cột

3. Sử dụng hàm INDEX kết hợp với 2 hàm MATCH ở trên để trả về giá trị dựa theo hàng và cột trong Bảng 2: 

=INDEX($B$15:$E$18,MATCH(B4,$B$15:$B$18,0),MATCH(C4,$B$15:$E$15,0))

Kết quả trả về giá trị tương ứng của hàng 4 (Hàng Mouse), cột 2 (Cột Samsung) trong Bảng 2 là 5.

Kết hợp hàm INDEX và hàm MATCH

Sau đó, ta copy công thức cho các ô khác để hoàn thành.

Copy công thức cho các ô khác để hoàn thành

4. Một số lưu ý khi sử dụng

Như đã đề cập ở phần 1, vì hàm VLOOKUP, HLOOKUP có hạn chế của nó nên nếu giá trị trả về nằm ở cột bên trái hoặc cột ở trên so với giá trị dò tìm thì 2 công thức sẽ không hoạt động. Hàm INDEX kết hợp hàm MATCH sẽ linh hoạt hơn rất nhiều khi không quan tâm về vị trí các cột giá trị trả về ở đâu.

Trong ví dụ ở dưới, ta có bảng 1 liệt kê thủ đô của các nước và cần điền dữ liệu tương ứng ở bảng 2. Trường hợp này ta không thể sử dụng hàm VLOOKUP nhưng hàm INDEX kết hợp hàm MATCH sẽ giải quyết được điều này.

=INDEX($B$3:$C$12,MATCH(E4,$C$3:$C$12,0),1)
Hàm INDEX kết hợp hàm MATCH thay thế hàm VLOOKUP

5. Một số lỗi thường gặp

Trong lúc sử dụng hàm INDEX kết hợp với hàm MATCH, bạn sẽ gặp lỗi #NA và lỗi #VALUE xuất hiện. Các nguyên nhân gây ra lỗi này thường là:

Lỗi #NA

  • Khi hàm MATCH không tìm thấy giá trị trong phạm vi dò tìm, nó trả về giá trị #N/A.
  • Khi bạn sử dụng một phạm vi trong INDEX, MATCH thay vì một giá trị, bạn cần nhấn Ctrl+Shift+Enter để chuyển về công thức mảng.
  • Khi bạn sử dụng MATCH, cần có sự nhất quán giữa giá trị trong đối số match_type và thứ tự sắp xếp các giá trị trong phạm vi dò tìm, nếu không bạn sẽ gặp giá trị #N/A.

Lỗi #VALUE

Nếu bạn đang sử dụng chỉ mục dưới dạng công thức mảng cùng với kết quả phù hợp để có thể dò tìm một giá trị, bạn sẽ cần chuyển công thức của bạn thành công thức mảng bằng cách nhấn Ctrl+Shift+Enter, nếu không thì bạn sẽ thấy lỗi #VALUE! xuất hiện.

hotline
Gọi ngay
zalo icon Chat Zalo messenger icon Chat facebook