Chuyển đến nội dung chính

Hàm MATCH() trong Excel: Cách tìm vị trí của một giá trị trong một phạm vi

Tìm hiểu cách dùng hàm MATCH() trong Excel để xác định vị trí của một giá trị trong phạm vi, bao gồm cú pháp, trường hợp sử dụng và kỹ thuật nâng cao.
· 8 phút đọc

Khám phá cùng AI

Trong bài viết này, tôi sẽ chỉ ra điều khiến hàm MATCH() của Excel khác biệt so với các hàm dò tìm khác của Excel.

Điểm độc đáo của MATCH() là, không giống VLOOKUP() hay HLOOKUP() trả về giá trị thực, MATCH() cho chúng ta vị trí của một giá trị, điều này có thể cực kỳ hữu ích trong nhiều tình huống - hãy xem cách thực hiện.

Câu trả lời nhanh

Để tìm vị trí của một giá trị bằng hàm MATCH():

  • Nhấp vào một ô trống nơi bạn muốn hiển thị kết quả

  • Gõ =MATCH(

  • Sau đó nhập giá trị dò tìm trong dấu ngoặc kép

  • Chọn lookup_array.

  • Nhập kiểu khớp (0 cho khớp chính xác) và nhấn Enter.

Ví dụ, tôi có danh sách trái cây và doanh số của chúng trong vùng A2:B6, và tôi muốn tìm vị trí của Orange trong danh sách này. Để làm vậy, tôi nhập công thức sau và nhấn Enter: 

=MATCH(“Orange”, A2:A6, 0)

Kết quả sẽ hiển thị 4 vì Orange là loại trái cây thứ tư trong danh sách.

Sử dụng hàm MATCH trong Excel.

Sử dụng hàm MATCH(). Ảnh: Tác giả.

Tìm hiểu về MATCH() trong Excel

Có nhiều cách dùng MATCH() và cách chúng ta dùng sẽ ảnh hưởng đến kết quả nhận được. Hãy tìm hiểu chi tiết để bạn có thể chọn cách phù hợp nhất.

Hàm MATCH() là gì?

Hàm MATCH() trong Excel trả về vị trí của một giá trị trong danh sách. Thay vì đưa ra giá trị thực, nó cho biết giá trị đó nằm ở đâu. Điều này đặc biệt hữu ích khi ta cần biết vị trí hơn là giá trị, nhất là cho các phép dò tìm linh hoạt.

Cú pháp của hàm MATCH()

Cú pháp của MATCH() là:

MATCH(lookup_value, lookup_array, [match_type])

Trong đó: 

  • lookup_value là giá trị chúng ta cần tìm trong lookup_array.

  • lookup_array là danh sách dùng để tìm giá trị đó.

  • match_type (tùy chọn) cho biết cách tìm. 1 (mặc định) trả về giá trị lớn nhất nhỏ hơn hoặc bằng lookup_value (danh sách phải được sắp xếp tăng dần). 0 trả về khớp chính xác. Và -1 trả về giá trị nhỏ nhất lớn hơn hoặc bằng giá trị cần tìm (danh sách phải được sắp xếp giảm dần).

Những điểm chính cần biết về hàm MATCH() 

Trước khi dùng MATCH(), có vài điểm nhỏ đáng lưu ý. Chúng sẽ giúp bạn tránh lỗi và thao tác dễ hơn:

  • MATCH() không phân biệt chữ hoa hay chữ thường, nên apple, Apple và APPLE được coi như nhau. 

  • Nếu làm việc với văn bản và đặt match_type là 0, ta có thể dùng ký tự đại diện như * để đại diện cho nhiều ký tự và ? cho một ký tự. 

  • Nếu MATCH() không tìm thấy giá trị mong muốn, nó sẽ trả về lỗi #N/A .

Ví dụ cơ bản về cách dùng MATCH() trong Excel

Giờ khi đã biết hàm MATCH() là gì và cách hoạt động, hãy xem vài ví dụ sử dụng: 

Ví dụ 1: Tìm vị trí của một số

Giả sử tôi có một dãy số trong ô A2:A7 và muốn tìm vị trí của số 40 trong danh sách. Tôi có thể dùng hàm MATCH() như sau:

=MATCH(40, A2:A7, 0)

Hoặc tôi cũng có thể dùng tham chiếu ô cho giá trị dò tìm.

=MATCH(D1, A2:A7, 0)

Nhìn vào tiêu đề hàng bên trái trong Excel, bạn sẽ thấy số 40 nằm ở hàng 6. Nhưng kết quả lại là 5. Đó là vì chúng ta bắt đầu đếm từ A2. Vậy nên khi Excel đếm từ đó, nó trả về 5 thay vì 6.

Tìm vị trí của một số bằng hàm MATCH trong Excel.

Tìm vị trí của một số bằng hàm MATCH(). Ảnh: Tác giả.

Ví dụ 2: Tìm vị trí của một giá trị văn bản

Tôi có danh sách Người chơi trong ô A2:A7 và Điểm số của họ trong ô B2:B7 được sắp xếp tăng dần, và tôi muốn tìm vị trí của người chơi Emily. Công thức của tôi như sau:

=MATCH(E1,A2:A6, 0)

Công thức này tìm giá trị trong ô D1 trong phạm vi A2:A7 và trả về 3 vì Emily là người chơi thứ ba trong danh sách.

Tìm vị trí của văn bản bằng hàm MATCH trong Excel.

Tìm vị trí của văn bản bằng hàm MATCH(). Ảnh: Tác giả.

Khớp mờ (fuzzy) và khớp ký tự đại diện (wildcard) trong Excel

Đôi khi dữ liệu chúng ta làm việc không hoàn hảo — có thể có lỗi chính tả, cách viết khác nhau, hoặc định dạng lộn xộn. Trong những trường hợp như vậy, khớp mờ và khớp bằng ký tự đại diện có thể giúp xử lý gọn gàng.

Khớp mờ 

Khớp mờ tìm các bản ghi từ những danh sách khác nhau có sự tương đồng nhưng không hoàn toàn giống hệt. Điều này hữu ích khi có khác biệt nhỏ hoặc lỗi chính tả như Frank so với Feank.

Tôi có hai bộ dữ liệu: Danh sách đơn hàng khách hàng và Thành viên chương trình khách hàng thân thiết. Tôi muốn kiểm tra những khách hàng có đơn hàng đã nằm trong Chương trình thân thiết hay chưa, ngay cả khi có biến thể do lỗi chính tả, biệt danh, hoặc khác biệt định dạng. Một VLOOKUP() sẽ không hiệu quả ở đây vì tên không khớp hoàn toàn.

Bước 1: Chuyển dữ liệu thành bảng

  • Chọn Customer Orders, nhấn Ctrl + T.  

  • Chọn Loyalty Program Members, nhấn Ctrl + T.

Hãy đảm bảo có khoảng trống giữa hai bảng để tách riêng chúng.

Bước 2: Tải dữ liệu vào Power Query  

  • Nhấp vào bất kỳ đâu trong Customer Orders, và đặt tên là Orders_Table.  
  • Vào Data > Get Data > From Table/Range.  
  • Close & Load để tải vào Power Query.  
  • Lặp lại Bước 1-3 cho Loyalty Program Members, và đặt tên là Loyalty_Table nhưng lần này chọn Close & Load To và tải vào cùng trang tính Excel.

Giờ đây, cả hai bảng đã được tải vào Power Query.

Tải các bảng vào Power Query để thực hiện khớp mờ trong Excel.

Tải các bảng vào Power Query. Ảnh: Tác giả.

Bước 3: Gộp bảng bằng khớp mờ  

  • Vào Data > Get Data > Combine Queries > Merge Queries.  
  • Trong cửa sổ Merge, chọn bảng thứ nhất (Orders_Table) và bảng thứ hai (Loyalty_Table)   
  • Chọn cột Customer Name ở cả hai bảng.  
  • Chọn hộp Use Fuzzy Matching.  
  • Nhấp vào menu thả xuống và đặt ngưỡng tương đồng là 0.3 (cho phép một số khác biệt như lỗi chính tả hoặc biệt danh).

gộp bảng bằng khớp mờ trong Excel.

Dùng khớp mờ để gộp các bảng. Ảnh: Tác giả.

Power Query giờ sẽ khớp các tên tương tự thay vì khớp chính xác.  

Bước 4: Mở rộng dữ liệu đã khớp

  • Nhấp vào biểu tượng mở rộng bên cạnh cột đã khớp.
  • Chọn Customer Name từ Loyalty_Table và nhấp OK.  
  • Close & Load kết quả trở lại Excel.  

Bạn có thể thấy trong hình dưới đây rằng tra cứu mờ đã tự động khớp các khách hàng có biến thể tên.

Các bảng được gộp bằng khớp mờ trong Excel.

Các bảng được gộp bằng khớp mờ. Ảnh: Tác giả.

Khớp bằng ký tự đại diện

Khớp bằng ký tự đại diện giúp tìm tên hoặc giá trị khi ta chỉ biết một phần điều cần tìm. Nó hữu ích khi làm việc với các mục tương tự nhau hoặc khi bạn chỉ nhớ mang máng. Có hai ký tự đại diện có thể dùng:

  • * khớp với bất kỳ số lượng ký tự nào (Ví dụ, Jo* khớp John và Jonathan).

  • ? khớp đúng một ký tự (Ví dụ, J?ck khớp Jack nhưng không khớp Jake).

Cách chúng hoạt động:

  • A* khớp mọi thứ bắt đầu bằng A.

  • *A khớp mọi thứ kết thúc bằng A.

  • *A* khớp mọi thứ có chứa A ở bất kỳ đâu trong ô.

Ví dụ, để tìm tên người có tên kết thúc bằng e, tôi dùng:

=MATCH("*e", A2:A11, 0)

Bạn có thể thấy trong hình dưới đây công thức trả về 3 vì tên Charlie kết thúc bằng e.

Tìm vị trí bằng ký tự đại diện trong Excel.

Tìm vị trí bằng ký tự đại diện. Ảnh: Tác giả.

Kết hợp MATCH() với các hàm Excel khác

MATCH() càng hữu ích hơn khi ghép với các hàm khác. Nó giúp công thức linh hoạt hơn và dễ cập nhật. Hãy xem cách làm.

Kết hợp MATCH() với INDEX()

MATCH() thường được ghép với INDEX() cho các phép dò tìm mạnh mẽ. Khác với VLOOKUP() chỉ có thể dò từ trái sang phải, INDEX() và MATCH() kết hợp để dò theo bất kỳ hướng nào.

Ví dụ, tôi có danh sách người chơi và điểm số của họ, và tôi muốn tìm điểm của Brian. Tôi dùng công thức sau:

=INDEX(B2:B11,MATCH("Brian",A2:A11,0))

Và với tham chiếu ô, công thức như sau:

=INDEX(B2:B11, MATCH(E1, A2:A11, 0))

Kết hợp INDEX() và MATCH() trong Excel.

Kết hợp INDEX() và MATCH(). Ảnh: Tác giả.

Dùng MATCH() để chọn cột động trong VLOOKUP()

Chúng ta biết VLOOKUP() yêu cầu nhập thủ công số cột chứa kết quả. Nếu các cột thay đổi, ta phải cập nhật công thức. Để tránh điều này, có thể dùng MATCH() để tự động tìm đúng cột.

Ví dụ, tôi có một bộ dữ liệu và muốn tìm tên đội của Emily. Với VLOOKUP(), công thức như sau:

=VLOOKUP(F1, A2:C12, 3, FALSE)

Công thức này chỉ có thể dò từ trái sang phải, và số cột 3 là cố định, nên nếu các cột thay đổi, tôi phải cập nhật công thức thủ công.

Vì vậy thay vì mã hóa cứng số cột trong VLOOKUP(), ta có thể kết hợp MATCH() như sau:

=VLOOKUP(F1, A2:C12, MATCH("Team", A1:C1, 0), FALSE)

Trong công thức này, MATCH("Team", A1:C1, 0) tìm xem cột nào chứa Team và trả về vị trí cột đó. Sau đó, VLOOKUP(F1, A2:C4, 3, FALSE) lấy dữ liệu từ cột thứ ba thay vì một số cố định.

Kết hợp VLOOKUP() và MATCH() trong Excel.

Kết hợp VLOOKUP() và MATCH(). Ảnh: Tác giả.

MATCH() phân biệt hoa thường với EXACT()

Mặc định, MATCH() bỏ qua chữ hoa và chữ thường, nên Apple và apple được coi là giống nhau. Nếu cần tìm kiếm phân biệt hoa thường, ta phải kết hợp MATCH() với hàm EXACT() như sau: 

=MATCH(TRUE, EXACT(A2:A7, D2), 0)

Đây là công thức mảng, nên nhấn Ctrl + Shift + Enter. Trong công thức này, EXACT(A2:A4, "Emily") kiểm tra từng tên và trả về TRUE chỉ với khớp hoàn toàn. MATCH(TRUE, ...) sẽ tìm TRUE đầu tiên và trả về vị trí.

Kết hợp EXACT() và MATCH() trong Excel.

Kết hợp EXACT() và MATCH(). Ảnh: Tác giả.

Tổng kết

MATCH(), ký tự đại diện và khớp mờ lúc đầu có thể hơi khó, nhưng với một chút luyện tập, chúng có thể tiết kiệm cho chúng ta rất nhiều thời gian. Chúng đặc biệt hữu ích khi làm việc với dữ liệu lộn xộn hoặc cần cách tìm kiếm linh hoạt hơn trong bảng tính.

Nếu bạn muốn tìm hiểu thêm, khóa học Data Analysis in Excel của chúng tôi là bước tiếp theo tuyệt vời. Hoặc xem lộ trình kỹ năng Excel Fundamentals để củng cố kiến thức nền và tự tin hơn khi dùng các hàm như thế này.

Bạn có thể mắc lỗi lúc đầu, nhưng đừng căng thẳng nếu phải thử vài lần. Đó là một phần của việc làm quen với Excel.

Laiba Siddiqui

Tác giả

Laiba Siddiqui

Tôi là một chiến lược gia nội dung, yêu thích việc đơn giản hóa các chủ đề phức tạp. Tôi đã giúp các công ty như Splunk, Hackernoon và Tiiny Host tạo nội dung hấp dẫn và giàu thông tin cho khán giả của họ.

Câu hỏi thường gặp về Excel

Tôi có thể so sánh hai cột để tìm giá trị trùng và khác nhau không?

Bạn có thể dùng các hàm ISNA() và MATCH() để kiểm tra xem các giá trị từ một danh sách có tồn tại trong danh sách khác không.

=IF(ISNA(MATCH(B1,A1:A6,0)),"Not Present","Present")

Nếu một giá trị ở cột B không tìm thấy trong cột A, công thức sẽ trả về "Not in List 1."

Xử lý lỗi khi dùng `MATCH()` như thế nào?

Khi hàm MATCH() không thể tìm thấy giá trị, nó trả về lỗi #N/A. Để thay bằng thông báo tùy chỉnh, hãy bọc công thức trong hàm IFERROR() như sau:

=IFERROR(MATCH("Apple", A1:A5, 0), "Not Found")

Công thức này sẽ hiển thị thông báo tùy chỉnh thay vì lỗi.

Chủ đề

Liên quan