Menu

Hàm XMATCH trong Excel: tìm vị trí, khớp cuối cùng

=XMATCH(E2,A2:A6) trả về vị trí của E2 trong A2:A6, mặc định là khớp chính xác. Hàm này còn tìm được giá trị nhỏ hơn hoặc lớn hơn liền kề mà không cần sắp xếp, tìm từ dưới lên, và dùng ký tự đại diện.

Mọi bảng tính trên trang này đều trực tiếp: đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

=XMATCH(E2,A2:A6) trả về vị trí của E2 trong A2:A6: 1 cho ô đầu tiên, 2 cho ô thứ hai. Khác với MATCH, hàm này tìm khớp chính xác trừ khi bạn yêu cầu khác. XMATCH cần Excel 2021 hoặc Microsoft 365; ở các phiên bản cũ hơn, hãy dùng MATCH(E2,A2:A6,0).

Vị trí của một sản phẩm
F2
ABCDEF
1ProductCategoryPriceLook forPosition
2AppleFruit$1.20Carrot3
3PearFruit$1.50
4CarrotVegetable$0.80
5BreadBakery$2.40
6MilkDairy$1.10
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Carrot là mục thứ ba, nên F2 hiện 3. Gõ Kiwi thì hàm trả về #N/A. Như mọi hàm tra cứu trong Excel, XMATCH không phân biệt chữ hoa chữ thường.

Cú pháp XMATCH

=XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])
Đối sốGiá trị
match_mode0 chính xác (mặc định), -1 chính xác hoặc nhỏ hơn liền kề, 1 chính xác hoặc lớn hơn liền kề, 2 khớp theo ký tự đại diện
search_mode1 từ phần tử đầu (mặc định), -1 từ phần tử cuối, 2 tìm kiếm nhị phân tăng dần, -2 tìm kiếm nhị phân giảm dần

Các chế độ nhị phân nhanh hơn trên danh sách rất lớn đã sắp xếp và trả về vị trí sai trên danh sách chưa sắp xếp. Các chế độ còn lại dùng được với dữ liệu theo bất kỳ thứ tự nào.

Nhỏ hơn hoặc lớn hơn liền kề, không cần sắp xếp

match_mode 1 tìm giá trị nhỏ nhất lớn hơn hoặc bằng giá trị cần tìm. Cách này trả lời câu hỏi "hộp nhỏ nhất vừa chứa" ngay cả khi các kích thước được liệt kê không theo thứ tự nào. Với MATCH, bạn sẽ cần danh sách được sắp xếp từ lớn đến nhỏ.

Hộp nhỏ nhất chứa vừa món hàng
E2
ABCDE
1BoxHolds (liters)Item (liters)18
2S5Position4
3XL50BoxL
4M12
5L25
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Các kích thước chứa được 18 lít là 25 và 50, và nhỏ hơn là 25, mục thứ tư, hộp L. Đổi E1 thành 12 để thấy khớp chính xác (M) hoặc thành 40 để được XL. match_mode -1 thì ngược lại: giá trị lớn nhất nhỏ hơn hoặc bằng giá trị cần tìm, đúng quy tắc của bậc thuế và mức hoa hồng. XLOOKUP có hai chế độ tương tự và trả về giá trị trực tiếp.

Tìm từ phần tử cuối

search_mode -1 bắt đầu từ dưới lên, nên XMATCH trả về vị trí của lần khớp cuối cùng. Vị trí vẫn được đếm từ đầu vùng dữ liệu.

Đơn hàng cuối cùng của một khách hàng
F2
ABCDEF
1DateCustomerAmountCustomerBen
22026-03-02Ben120Last position5
32026-03-05Ana80Last date2026-03-20
42026-03-09Ben45First position1
52026-03-12Cara200
62026-03-20Ben60
72026-03-24Ana95
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Ben xuất hiện ở các vị trí 1, 3 và 5. Tìm xuôi trả về 1 và tìm ngược trả về 5, đơn hàng của Ben ngày 2026-03-20. Trước khi có XMATCH, muốn lấy vị trí cuối cùng phải dùng một mẹo mảng: =MATCH(2,1/(B2:B7=F1)).

Ký tự đại diện cần match_mode 2

Với match_mode 2, * đại diện cho chuỗi ký tự bất kỳ và ? cho đúng một ký tự. Ở các chế độ khác, chúng là ký tự bình thường, trong khi MATCH coi chúng là ký tự đại diện mỗi khi match_type là 0.

Tìm theo mẫu
D2
ABCD
1ProductPatternPosition
2Green tea*coffee2
3Iced coffee?lack*4
4Coffee beans
5Black tea
6Orange juice
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

*coffee (bất cứ thứ gì kết thúc bằng "coffee") khớp với Iced coffee ở vị trí 2, và ?lack* khớp với Black tea ở vị trí 4. Coffee beans không khớp với *coffee, vì mẫu không có * ở cuối. Không có match_mode 2, cùng mẫu đó được tìm như văn bản nguyên dạng, nên trong Excel công thức này trả về #N/A:

=XMATCH("*coffee", A2:A6)        #N/A: no cell is literally "*coffee"
=XMATCH("*coffee", A2:A6, 2)     2

XMATCH so với MATCH

MATCHXMATCH
Mặc định khi bỏ trống chế độGần đúng (1), dữ liệu phải được sắp xếpChính xác
Giá trị nhỏ hơn liền kề1, dữ liệu sắp xếp tăng dần-1, thứ tự bất kỳ
Giá trị lớn hơn liền kề-1, dữ liệu sắp xếp giảm dần1, thứ tự bất kỳ
Ký tự đại diệnLuôn bật với 0Chỉ với match_mode 2
Lần khớp cuối cùngKhôngsearch_mode -1
Phiên bảnTất cảExcel 2021 và Microsoft 365

Dấu bị đảo ngược: -1 của MATCH tìm giá trị lớn hơn liền kề, còn -1 của XMATCH tìm giá trị nhỏ hơn liền kề. Khi chuyển MATCH(E2,A2:A6,0) sang XMATCH, hãy bỏ số 0; khi chuyển một MATCH khớp gần đúng, hãy đảo dấu, và thứ tự sắp xếp không còn quan trọng nữa. Trang MATCH trình bày hàm cũ hơn này.

Luyện tập: vị trí của đơn hàng cuối cùng

Đơn hàng
F2
ABCDEF
1DateCustomerAmountCustomerBen
22026-03-02Ben120Last position
32026-03-05Ana80
42026-03-09Ben45
52026-03-12Cara200
62026-03-20Ben60
72026-03-24Ana95
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Đến lượt bạn: Trong F2, trả về vị trí đơn hàng cuối cùng của khách hàng ở F1.

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

MATCH và XMATCH khác nhau thế nào?

XMATCH mặc định khớp chính xác (MATCH mặc định khớp gần đúng), tìm được giá trị nhỏ hơn hoặc lớn hơn liền kề mà không cần dữ liệu đã sắp xếp, có thể tìm từ phần tử cuối ngược lên, và chỉ coi * và ? là ký tự đại diện khi bạn yêu cầu bằng match_mode 2. Hàm này cần Excel 2021 hoặc Microsoft 365.

Tìm lần xuất hiện cuối cùng bằng XMATCH như thế nào?

Đặt search_mode, đối số thứ tư, là -1: =XMATCH("Ben",B2:B7,0,-1) trả về vị trí của Ben cuối cùng trong B2:B7. Vị trí vẫn được đếm từ đầu vùng dữ liệu.

XMATCH trả về gì nếu không có giá trị nào khớp?

#N/A, giống MATCH. Bọc nó trong IFNA để hiển thị nội dung khác: =IFNA(XMATCH(E2,A2:A6),"Not in list").

XMATCH có thay được MATCH bên trong INDEX không?

Có. =INDEX(C2:C6,XMATCH(E2,A2:A6)) hoạt động như INDEX với MATCH(E2,A2:A6,0), mà không có số 0 nào để quên. Hãy dùng MATCH nếu tệp phải mở được trên Excel 2019 hoặc cũ hơn.

Hình minh họa các ngôn ngữ lập trình của Coddy

Học lập trình cùng Coddy

Bắt đầu