Hàm Excel XMATCH với các ví dụ về công thức

  • Chia Sẻ Cái Này
Michael Brown
tìm kiếm nhưng chỉ hoạt động chính xác trên danh sách được sắp xếp. Trên dữ liệu chưa được sắp xếp, nó có thể trả về kết quả sai mà thoạt nhìn có vẻ khá bình thường.

Cú pháp của MATCH hoàn toàn không cung cấp đối số chế độ tìm kiếm.

XMATCH xử lý mảng nguyên bản

Không giống như tiền thân của nó, hàm XMATCH được thiết kế cho Excel động và xử lý các mảng một cách tự nhiên mà bạn không cần phải nhấn Ctrl + Shift + Enter . Điều này giúp cho việc xây dựng và chỉnh sửa các công thức trở nên dễ dàng hơn nhiều, đặc biệt là khi sử dụng đồng thời một vài hàm khác nhau. Chỉ cần so sánh các giải pháp sau:

  • Công thức phân biệt chữ hoa chữ thường: XMATCH

    Hướng dẫn giới thiệu hàm XMATCH mới của Excel và cho biết hàm này tốt hơn MATCH như thế nào để giải quyết một số tác vụ thông thường.

    Trong Excel 365, hàm XMATCH đã được thêm vào để thay thế hàm XMATCH Hàm MATCH. Nhưng trước khi bạn bắt đầu nâng cấp các công thức hiện tại của mình, bạn nên hiểu tất cả các ưu điểm của hàm mới và cách hàm này khác với hàm cũ.

    Tóm lại, hàm XMATCH giống như hàm MATCH nhưng linh hoạt hơn và cường tráng. Nó có thể tra cứu theo cả mảng dọc và ngang, tìm kiếm từ đầu đến cuối hoặc từ cuối đến đầu, tìm kết quả khớp chính xác, gần đúng và một phần, đồng thời sử dụng thuật toán tìm kiếm nhị phân nhanh hơn.

    Hàm XMATCH trong Excel

    Hàm XMATCH trong Excel trả về vị trí tương đối của một giá trị trong một mảng hoặc một dải ô.

    Hàm này có cú pháp như sau:

    XMATCH(giá trị_lookup , lookup_array, [match_mode], [search_mode])

    Ở đâu:

    Lookup_value (bắt buộc) - giá trị cần tìm.

    Lookup_array (bắt buộc) - mảng hoặc phạm vi ô cần tìm kiếm.

    Match_mode (tùy chọn) - chỉ định loại đối sánh sẽ sử dụng:

    • 0 hoặc bị bỏ qua (mặc định) - khớp chính xác
    • -1 - khớp chính xác hoặc giá trị nhỏ nhất tiếp theo
    • 1 - khớp chính xác hoặc giá trị lớn nhất tiếp theo
    • 2 - khớp ký tự đại diện ( *, ?)

    Chế độ_tìm kiếm (tùy chọn) - chỉ định hướng và thuật toán tìm kiếm:

    • 1 hoặc bỏ qua (mặc định) -phù hợp hoặc lớn nhất tiếp theo. Không yêu cầu bất kỳ sự sắp xếp nào.

    Khi đối số match_mode / match_type được đặt thành -1:

    • MATCH tìm kiếm cho trận đấu chính xác hoặc lớn nhất tiếp theo. Yêu cầu sắp xếp mảng tra cứu theo thứ tự giảm dần.
    • XMATCH tìm kiếm đối sánh chính xác hoặc giá trị nhỏ nhất tiếp theo. Không yêu cầu bất kỳ sự sắp xếp nào.

    Tìm kiếm theo ký tự đại diện

    Để tìm kết quả khớp một phần với XMATCH, bạn cần đặt đối số match_mode thành 2.

    Hàm MATCH không có tùy chọn chế độ khớp ký tự đại diện đặc biệt. Trong hầu hết các trường hợp, bạn sẽ định cấu hình nó để đối sánh chính xác ( match_type đặt thành 0), chế độ này cũng hoạt động đối với tìm kiếm ký tự đại diện.

    Chế độ tìm kiếm

    Giống như XLOOKUP mới chức năng, XMATCH có một đối số search_mode đặc biệt cho phép bạn xác định hướng tìm kiếm :

    • 1 hoặc bỏ qua (mặc định) - tìm kiếm trước đến sau -cuối cùng.
    • -1 - đảo ngược tìm kiếm từ cuối đến đầu tiên.

    Và chọn thuật toán tìm kiếm nhị phân , thuật toán này rất nhanh và hiệu quả trên dữ liệu được sắp xếp .

    • 2 - tìm kiếm nhị phân trên dữ liệu được sắp xếp tăng dần.
    • -2 - tìm kiếm nhị phân trên dữ liệu được sắp xếp giảm dần.

    Tìm kiếm nhị phân , còn được gọi là tìm kiếm nửa khoảng thời gian hoặc tìm kiếm logarit , là một thuật toán đặc biệt tìm vị trí của một giá trị tra cứu trong một mảng bằng cách so sánh nó đến phần tử ở giữa của mảng. Tìm kiếm nhị phân nhanh hơn nhiều so với tìm kiếm thông thườngtìm kiếm từ đầu đến cuối.

  • -1 - tìm kiếm theo thứ tự ngược lại từ cuối đến đầu.
  • 2 - tìm kiếm nhị phân tăng dần. Yêu cầu lookup_array được sắp xếp theo thứ tự tăng dần.
  • -2 - tìm kiếm nhị phân giảm dần. Yêu cầu lookup_array được sắp xếp theo thứ tự giảm dần.

Tìm kiếm nhị phân là một thuật toán nhanh hơn hoạt động hiệu quả trên các mảng đã sắp xếp. Để biết thêm thông tin, vui lòng xem Chế độ tìm kiếm.

Phiên bản Excel nào có XMATCH?

Hàm XMATCH chỉ khả dụng trong Excel cho Microsoft 365 và Excel 2021. Trong Excel 2019, Excel 2016 trở về trước các phiên bản khác, chức năng này không được hỗ trợ.

Công thức XMATCH cơ bản trong Excel

Để có ý tưởng chung về chức năng của hàm, hãy xây dựng một công thức XMATCH ở dạng đơn giản nhất, chỉ xác định hai đối số bắt buộc đầu tiên và để mặc định các đối số tùy chọn.

Giả sử, bạn có một danh sách các đại dương được xếp hạng theo kích thước của chúng (C2:C6) và bạn muốn tìm thứ hạng của một đại dương cụ thể. Để hoàn thành, chỉ cần sử dụng tên của đại dương, chẳng hạn như Ấn Độ , làm giá trị tra cứu và toàn bộ danh sách tên làm mảng tra cứu:

=XMATCH("Indian", C2:C6)

Để thực hiện công thức linh hoạt hơn, hãy nhập đại dương quan tâm vào một số ô, chẳng hạn F1:

=XMATCH(F1, C2:C6)

Kết quả là bạn nhận được một công thức XMATCH để tra cứu trong mảng dọc . Đầu ra là vị trí tương đối của giá trị tra cứu trong mảng, mà trong trường hợp của chúng tatương ứng với thứ hạng của đại dương:

Một công thức tương tự cũng hoạt động hoàn hảo cho mảng ngang . Tất cả những gì bạn cần làm là điều chỉnh tham chiếu lookup_array :

=XMATCH(B5, B1:F1)

Hàm Excel XMATCH - những điều cần nhớ

Để sử dụng hiệu quả XMATCH trong bảng tính của bạn và ngăn các kết quả không mong muốn, hãy nhớ 3 thông tin đơn giản sau:

  • Nếu có hai hoặc nhiều lần xuất hiện của giá trị tra cứu trong mảng tra cứu, vị trí của kết quả khớp đầu tiên được trả về nếu đối số search_mode được đặt thành 1 hoặc bị bỏ qua. Với search_mode được đặt thành -1, hàm tìm kiếm theo thứ tự ngược lại và trả về vị trí của kết quả khớp cuối cùng như minh họa trong ví dụ này.
  • Nếu giá trị tra cứu không tìm thấy , xảy ra lỗi #N/A.
  • Hàm XMATCH phân biệt chữ hoa chữ thường về bản chất và không thể phân biệt chữ hoa chữ thường. Để phân biệt các ký tự chữ thường và chữ hoa, hãy sử dụng công thức XMATCH phân biệt chữ hoa chữ thường này.

Cách sử dụng XMATCH trong Excel - ví dụ về công thức

Các ví dụ sau sẽ giúp bạn hiểu rõ hơn về Hàm XMATCH và các ứng dụng thực tế của nó.

Kết hợp chính xác so với kết hợp gần đúng

Hành vi khớp của XMATCH được kiểm soát bởi đối số match_mode tùy chọn:

  • 0 hoặc bị bỏ qua (mặc định) - công thức chỉ tìm kiếm đối sánh chính xác. Nếu không tìm thấy đối sánh chính xác, mộtLỗi #N/A được trả về.
  • -1 - công thức tìm kiếm đối sánh chính xác trước, sau đó tìm mục nhỏ hơn tiếp theo.
  • 1 - công thức tìm kiếm đối sánh chính xác trước và sau đó là mục lớn hơn tiếp theo.

Và bây giờ, hãy xem các chế độ đối sánh khác nhau ảnh hưởng như thế nào đến kết quả của công thức. Giả sử bạn muốn tìm hiểu vị trí của một khu vực nhất định, chẳng hạn như 80.000.000 km2, nằm giữa tất cả các đại dương.

Kết hợp chính xác

Nếu bạn sử dụng 0 cho match_mode , thì bạn' sẽ gặp lỗi #N/A vì công thức không thể tìm thấy giá trị chính xác bằng giá trị tra cứu:

=XMATCH(80000000, C2:C6, 0)

Mục nhỏ nhất tiếp theo

Nếu bạn sử dụng -1 đối với match_mode , công thức sẽ trả về 3, vì giá trị khớp gần nhất nhỏ hơn giá trị tra cứu là 70.560.000 và là mục thứ 3 trong mảng tra cứu:

=XMATCH(80000000, C2:C6, -1)

Mục lớn nhất tiếp theo

Nếu bạn sử dụng 1 cho match_mode , thì công thức sẽ cho kết quả là 2, vì giá trị khớp gần nhất lớn hơn giá trị tra cứu là 85.133.000, là mục thứ 2 trong mảng tra cứu :

=XMATCH(80000000, C2:C6, -1)

Hình ảnh bên dưới hiển thị tất cả các kết quả:

Cách khớp một phần văn bản trong Excel bằng ký tự đại diện

Hàm XMATCH có chế độ khớp đặc biệt cho ký tự đại diện: đối số match_mode được đặt thành 2.

Trong chế độ khớp ký tự đại diện, công thức XMATCH chấp nhận ký tự đại diện sau ký tự:

  • Dấu chấm hỏi (?) để khớp với bất kỳ ký tự đơn nào.
  • Dấu hoa thị (*) để khớp với bất kỳ ký tự nàochuỗi ký tự.

Xin lưu ý rằng ký tự đại diện chỉ hoạt động với văn bản, không phải số.

Ví dụ: để tìm vị trí của mục đầu tiên bắt đầu bằng "nam" , công thức là:

=XMATCH("south*", B2:B6, 2)

Hoặc bạn có thể nhập biểu thức ký tự đại diện của mình vào một số ô, chẳng hạn như F1 và cung cấp tham chiếu ô cho đối số lookup_value :

=XMATCH(F1, B2:B6, 2)

Với hầu hết các hàm Excel, bạn sẽ sử dụng dấu ngã (~) để coi dấu hoa thị (~*) hoặc dấu chấm hỏi (~?) là ký tự ký tự, không phải ký tự đại diện. Với XMATCH, dấu ngã là không cần thiết. Nếu bạn không xác định chế độ đối sánh ký tự đại diện, XMATCH sẽ cho rằng ? và * là các ký tự thông thường.

Ví dụ: công thức bên dưới sẽ tìm kiếm chính xác ký tự dấu hoa thị trong phạm vi A2:A7:

=XMATCH("*", A2:A7)

Tìm kiếm ngược XMATCH để tìm kết quả khớp cuối cùng

Trong trường hợp có một số lần xuất hiện của giá trị tra cứu trong mảng tra cứu, đôi khi bạn có thể cần lấy vị trí của lần xuất hiện cuối cùng .

Hướng tìm kiếm được kiểm soát bởi đối số thứ 4 của XMATCH có tên search_mode . Để tìm kiếm theo thứ tự ngược lại, tức là từ dưới lên trên trong một mảng dọc và từ phải sang trái trong một mảng ngang, search_mode phải được đặt thành -1.

Trong ví dụ này, chúng tôi sẽ trả về vị trí của bản ghi cuối cùng cho một giá trị tra cứu cụ thể (vui lòng xem ảnh chụp màn hình bên dưới). Đối với điều này, thiết lập các đối số nhưsau:

  • Lookup_value - nhân viên bán hàng mục tiêu trong H1
  • Lookup_array - tên nhân viên bán hàng trong C2:C10
  • Match_mode là 0 hoặc bị bỏ qua (khớp chính xác)
  • Search_mode là -1 (từ cuối đến đầu)

Đặt bốn đối số với nhau, chúng ta có công thức sau:

=XMATCH(H1, C2:C10, 0, -1)

Trả về số lần bán hàng cuối cùng do Laura thực hiện:

Làm thế nào để so sánh hai cột trong Excel cho khớp

Để so sánh hai danh sách cho khớp, bạn có thể sử dụng hàm XMATCH cùng với IF và ISNA:

IF( ISNA( XMATCH( target_list, search_list, 0)), "Không khớp", "Khớp")

Ví dụ: để so sánh Danh sách 2 trong B2:B10 với Danh sách 1 trong A2:A10, công thức có dạng sau:

=IF(ISNA(XMATCH(B2:B10, A2:A9)), "", "Match in List 1")

Trong ví dụ này, chúng tôi chỉ xác định các giá trị khớp, do đó, đối số value_if_true của hàm IF là một chuỗi rỗng ("").

Nhập công thức trên vào ô trên cùng (trong trường hợp của chúng tôi là C2), nhấn Enter và nó sẽ tự động "tràn" vào các ô khác (i t được gọi là phạm vi tràn):

Cách thức hoạt động của công thức này

Trọng tâm của công thức là hàm XMATCH tìm kiếm cho một giá trị từ Danh sách 2 trong Danh sách 1. Nếu một giá trị được tìm thấy, vị trí tương đối của nó được trả về, nếu không thì lỗi #N/A. Trong trường hợp của chúng tôi, kết quả của XMATCH là mảng sau:

{#N/A;#N/A;2;#N/A;4;#N/A;#N/A;8;#N/A}

Mảng này được "nạp" vào hàm ISNA để kiểm tra lỗi #N/A.Đối với mỗi lỗi #N/A, ISNA trả về TRUE; cho bất kỳ giá trị nào khác - FALSE. Kết quả là, nó tạo ra một mảng các giá trị logic sau, trong đó TRUE biểu thị các giá trị không khớp và FALSE biểu thị các giá trị khớp:

{TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE}

Mảng trên đi đến kiểm tra logic của hàm IF . Tùy thuộc vào cách bạn định cấu hình hai đối số cuối cùng, công thức sẽ xuất văn bản tương ứng. Trong trường hợp của chúng tôi, đó là một chuỗi trống ("") cho các giá trị không khớp ( value_if_true ) và "Khớp trong Danh sách 1" cho các giá trị khớp ( value_if_false ).

Ghi chú. Công thức này chỉ hoạt động trong Excel 365 và Excel 2021 hỗ trợ mảng động. Nếu bạn đang sử dụng Excel 2019, Excel 2016 hoặc phiên bản cũ hơn, vui lòng xem các giải pháp khác: Cách so sánh hai cột trong Excel.

INDEX XMATCH trong Excel

XMATCH có thể được sử dụng kết hợp với hàm INDEX để truy xuất giá trị từ một cột khác được liên kết với giá trị tra cứu, giống như công thức INDEX MATCH. Cách tiếp cận chung như sau:

INDEX ( return _ array , XMATCH ( lookup_value , lookup_array )

The logic rất đơn giản và dễ thực hiện:

Hàm XMATCH tính toán vị trí tương đối của giá trị tra cứu trong mảng tra cứu và chuyển nó tới đối số row_num của INDEX. Dựa trên hàng số, thì hàm INDEX sẽ trả về một giá trị từ bất kỳ cột nào mà bạn chỉ định.

Ví dụ: để tra cứu khu vựccủa đại dương trong E1, bạn có thể sử dụng công thức sau:

=INDEX(B2:B6, XMATCH(E1, A2:A6))

INDEX XMATCH XMATCH để thực hiện tra cứu 2 chiều

Để tra cứu đồng thời theo cột và hàng, sử dụng INDEX cùng với hai hàm XMATCH. XMATCH đầu tiên sẽ lấy số hàng và XMATCH thứ hai sẽ lấy số cột:

INDEX ( data , XMATCH ( lookup_value , vertical _ lookup_array ), XMATCH ( giá trị tra cứu , horizontal _ lookup_array ))

Công thức tương tự như INDEX MATCH MATCH ngoại trừ việc bạn có thể bỏ qua đối số match_mode vì nó mặc định là đối sánh chính xác.

Ví dụ: để truy xuất số lượng bán hàng cho một mặt hàng nhất định (G1) trong một tháng cụ thể (G2), công thức là :

=INDEX(B2:D8, XMATCH(G1, A2:A8), XMATCH(G2, B1:D1))

Trong đó B2:D8 là các ô dữ liệu không bao gồm tiêu đề hàng và cột, A2:A8 là danh sách các mục và B1:D1 là tên tháng.

Công thức XMATCH phân biệt chữ hoa chữ thường

Như đã đề cập, hàm XMATCH trong Excel được thiết kế không phân biệt chữ hoa chữ thường. Để buộc nó phân biệt chữ hoa chữ thường, hãy sử dụng XMATCH kết hợp với hàm EXACT:

MATCH(TRUE, EXACT( lookup_array , lookup_value ))

Để tìm kiếm trong đảo ngược thứ tự từ cuối đến đầu:

MATCH(TRUE, EXACT( lookup_array , lookup_value ), 0, -1)

Ví dụ sau minh họa công thức chung này trong hành động. Giả sử bạn có danh sách id sản phẩm phân biệt chữ hoa chữ thường trong B2:B11. bạn đang muốntìm vị trí tương đối của mục trong E1. Công thức phân biệt chữ hoa chữ thường trong E2 đơn giản như sau:

=XMATCH(TRUE, EXACT(B2:B11, E1))

Cách hoạt động của công thức này:

Hàm EXACT so sánh giá trị tra cứu với từng mục trong mảng tra cứu. Nếu các giá trị được so sánh hoàn toàn bằng nhau, bao gồm cả trường hợp ký tự, thì hàm trả về TRUE, FALSE nếu không. Mảng giá trị lô-gic này (trong đó TRUE biểu thị kết quả khớp chính xác) đi đến đối số lookup_array của XMATCH. Và vì giá trị tra cứu là TRUE nên hàm XMATCH trả về vị trí của đối sánh chính xác được tìm thấy đầu tiên hoặc đối sánh chính xác cuối cùng, tùy thuộc vào cách bạn định cấu hình đối số search_mode .

XMATCH so với đối số. MATCH trong Excel

XMATCH được thiết kế như một sự thay thế mạnh mẽ và linh hoạt hơn cho MATCH, vì vậy hai hàm này có nhiều điểm chung. Tuy nhiên, có những điểm khác biệt cơ bản.

Hành vi mặc định khác nhau

Hàm MATCH mặc định là khớp chính xác hoặc mục nhỏ nhất tiếp theo ( match_type được đặt thành 1 hoặc bị bỏ qua).

Hàm XMATCH mặc định là khớp chính xác ( match_mode được đặt thành 0 hoặc bị bỏ qua).

Hành vi khác nhau đối với khớp gần đúng

Khi match_mode Đối số / match_type được đặt thành 1:

  • MATCH tìm kiếm đối sánh chính xác hoặc nhỏ nhất tiếp theo. Yêu cầu mảng tra cứu phải được sắp xếp theo thứ tự tăng dần.
  • XMATCH tìm kiếm chính xác

Michael Brown là một người đam mê công nghệ chuyên dụng với niềm đam mê đơn giản hóa các quy trình phức tạp bằng các công cụ phần mềm. Với hơn một thập kỷ kinh nghiệm trong ngành công nghệ, anh ấy đã trau dồi kỹ năng của mình trong Microsoft Excel và Outlook, cũng như Google Trang tính và Tài liệu. Blog của Michael dành để chia sẻ kiến ​​thức và chuyên môn của anh ấy với những người khác, cung cấp các mẹo và hướng dẫn dễ thực hiện để cải thiện năng suất và hiệu quả. Cho dù bạn là một chuyên gia dày dạn kinh nghiệm hay người mới bắt đầu, blog của Michael đều cung cấp những hiểu biết có giá trị và lời khuyên thiết thực để tận dụng tối đa những công cụ phần mềm thiết yếu này.