Funció XMATCH d'Excel amb exemples de fórmules

  • Comparteix Això
Michael Brown
cerca però funciona correctament només en llistes ordenades. En dades no ordenades, pot tornar resultats incorrectes que poden semblar bastant normals a primera vista.

La sintaxi de MATCH no proporciona en absolut l'argument del mode de cerca.

XMATCH gestiona les matrius de manera nativa

A diferència del seu predecessor, la funció XMATCH va ser dissenyada per a Excel dinàmic i gestiona matrius de manera nativa, sense que hagis de prémer Ctrl + Maj + Retorn . Això fa que les fórmules siguin molt més fàcils de crear i editar, especialment quan s'utilitzen algunes funcions diferents juntes. Només has de comparar les solucions següents:

  • Fórmula que distingeix entre majúscules i minúscules: XMATCH

    El tutorial presenta la nova funció XMATCH d'Excel i mostra com és millor que MATCH per resoldre algunes tasques habituals.

    A Excel 365, la funció XMATCH es va afegir per substituir la funció XMATCH. Funció MATCH. Però abans de començar a actualitzar les fórmules existents, seria convenient entendre tots els avantatges de la nova funció i com es diferencia de l'antiga.

    En resum, la funció XMATCH és la mateixa que MATCH però més flexible i més flexible. robust. Pot buscar tant en matrius verticals com horitzontals, cercar de primer a darrer o de darrer a primer, trobar coincidències exactes, aproximades i parcials i utilitzar un algorisme de cerca binari més ràpid.

    Funció XMATCH d'Excel

    La funció XMATCH d'Excel retorna la posició relativa d'un valor en una matriu o un rang de cel·les.

    Té la sintaxi següent:

    XMATCH(valor_cerca , lookup_array, [match_mode], [search_mode])

    On:

    Lookup_value (obligatori): el valor que cal cercar.

    Lookup_array (obligatori): la matriu o l'interval de cel·les on cercar.

    Match_mode (opcional) - especifica quin tipus de concordança s'ha d'utilitzar:

    • 0 o s'ha omès (per defecte) - concordança exacta
    • -1 - concordança exacta o el següent valor més petit
    • 1 - concordança exacta o el següent valor més gran
    • 2 - concordança amb comodins ( *, ?)

    Search_mode (opcional) - especifica la direcció i l'algorisme de la cerca:

    • 1 o s'omet (per defecte) -coincidència o el següent més gran. No requereix cap tipus d'ordenació.

    Quan l'argument match_mode / match_type s'estableix en -1:

    • Cerques de coincidència per a la coincidència exacta o la següent més gran. Cal ordenar la matriu de cerca en ordre descendent.
    • XMATCH cerca la concordança exacta o la següent més petita. No requereix cap tipus d'ordenació.

    Cerca amb comodins

    Per trobar coincidències parcials amb XMATCH, heu d'establir l'argument match_mode a 2.

    La funció MATCH no té una opció especial de mode de concordança de comodins. En la majoria dels casos, el configurareu per a una coincidència exacta ( match_type establert a 0), que també funciona per a cerques de comodins.

    Mode de cerca

    Com el nou XLOOKUP funció, XMATCH té un argument especial search_mode que us permet definir la direcció de la cerca :

    • 1 o s'omet (per defecte): cerca primer a -last.
    • -1 - cerca inversa de l'últim a primer.

    I trieu un algorisme de cerca binari , que és molt ràpid i eficient a dades ordenades .

    • 2 - cerca binària sobre dades ordenades ascendent.
    • -2 - cerca binària sobre dades ordenades descendent.

    La cerca binària , també anomenada cerca a mig interval o cerca logarítmica , és un algorisme especial que troba la posició d'un valor de cerca dins d'una matriu comparant-la. a l'element central de la matriu. Una cerca binària és molt més ràpida que una normalcerca del primer al darrer.

  • -1 - cerca en ordre invers de l'últim al primer.
  • 2 - cerca binària ascendent. Requereix que lookup_array estigui ordenat en ordre ascendent.
  • -2: cerca binària descendent. Requereix que lookup_array estigui ordenat en ordre descendent.

La cerca binària és un algorisme més ràpid que funciona de manera eficient en matrius ordenades. Per obtenir més informació, vegeu el mode de cerca.

Quina versió d'Excel té XMATCH?

La funció XMATCH només està disponible a Excel per a Microsoft 365 i Excel 2021. A Excel 2019, Excel 2016 i anteriors versions, aquesta funció no és compatible.

Fórmula XMATCH bàsica a Excel

Per tenir una idea general de què és capaç la funció, creem una fórmula XMATCH en la seva forma més simple, definint només els dos primers arguments requereixen i deixant els opcionals als seus valors predeterminats.

Suposant que teniu una llista d'oceans classificats per la seva mida (C2:C6) i voleu trobar el rang d'un oceà en particular. Per fer-ho, només cal que utilitzeu el nom de l'oceà, digueu Indian , com a valor de cerca i tota la llista de noms com a matriu de cerca:

=XMATCH("Indian", C2:C6)

Per fer-ho la fórmula és més flexible, introduïu l'oceà d'interès en alguna cel·la, per exemple F1:

=XMATCH(F1, C2:C6)

Com a resultat, obteniu una fórmula XMATCH per buscar en una matriu vertical . La sortida és la posició relativa del valor de cerca a la matriu, que en el nostre cascorrespon al rang de l'oceà:

Una fórmula similar funciona perfectament per a una matriu horitzontal també. Tot el que heu de fer és ajustar la referència lookup_array :

=XMATCH(B5, B1:F1)

Funció Excel XMATCH: coses per recordar

Per utilitzar XMATCH de manera eficaç als vostres fulls de treball i evitar resultats inesperats, recordeu aquests 3 fets senzills:

  • Si hi ha dues o més aparicions del valor de cerca a la matriu de cerca, la posició de es retorna la primera concordança si l'argument search_mode s'estableix a 1 o s'omet. Amb search_mode establert en -1, la funció cerca en ordre invers i retorna la posició de la última concordança tal com es mostra en aquest exemple.
  • Si el valor de cerca no es troba , es produeix un error #N/A.
  • La funció XMATCH és insensible a majúscules per naturalesa i no pot distingir les majúscules i minúscules. Per distingir els caràcters en majúscules i minúscules, utilitzeu aquesta fórmula XMATCH que distingeix entre majúscules i minúscules.

Com utilitzar XMATCH a Excel: exemples de fórmules

Els exemples següents us ajudaran a entendre millor la Funció XMATCH i els seus usos pràctics.

Concordança exacta i concordança aproximada

El comportament de concordança de XMATCH està controlat per l'argument opcional match_mode :

  • 0 o s'ha omès (per defecte): la fórmula només cerca la concordança exacta. Si no es troba una coincidència exacta, aEs retorna l'error #N/A.
  • -1: la fórmula cerca primer la concordança exacta i després el següent element més petit.
  • 1: la fórmula cerca primer la concordança exacta i després per al següent element més gran.

I ara, vegem com els diferents modes de concordança afecten el resultat de la fórmula. Suposem que voleu esbrinar on es troba una àrea determinada, per exemple 80.000.000 km2, entre tots els oceans.

Concordança exacta

Si feu servir 0 per a match_mode , Obtindré un error #N/A, perquè la fórmula no pot trobar un valor exactament igual al valor de cerca:

=XMATCH(80000000, C2:C6, 0)

Següent element més petit

Si utilitzeu -1 per a match_mode , la fórmula retornarà 3, perquè la coincidència més propera més petita que el valor de cerca és 70.560.000, i és el tercer element de la matriu de cerca:

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

Següent element més gran

Si feu servir 1 per a match_mode , la fórmula sortirà 2, perquè la coincidència més propera més gran que el valor de cerca és 85.133.000, que és el segon element de la matriu de cerca :

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

La imatge següent mostra tots els resultats:

Com combinar un text parcial a Excel amb comodins

La funció XMATCH té un mode de concordança especial per a comodins: l'argument match_mode s'estableix en 2.

En el mode de concordança de comodins, una fórmula XMATCH accepta el següent comodí caràcters:

  • Sign d'interrogació (?) per fer coincidir qualsevol caràcter.
  • Asterisc (*) per fer coincidir qualsevol caràcterseqüència de caràcters.

Tingueu en compte que els comodins només funcionen amb text, no amb números.

Per exemple, per trobar la posició del primer element que comença amb "sud". , la fórmula és:

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

O podeu escriure la vostra expressió comodí en alguna cel·la, per exemple F1, i proporcionar la referència de cel·la per a l'argument lookup_value :

=XMATCH(F1, B2:B6, 2)

Amb la majoria de les funcions d'Excel, utilitzaríeu la tilde (~) per tractar l'asterisc (~*) o el signe d'interrogació (~?) com a literal caràcters, no comodins. Amb XMATCH, el tilde no és necessari. Si no definiu el mode de concordança de comodins, XMATCH assumirà que ? i * són caràcters regulars.

Per exemple, la fórmula següent cercarà a l'interval A2:A7 exactament el caràcter asterisc:

=XMATCH("*", A2:A7)

XMATCH cerca inversa per trobar l'última coincidència

En cas que hi hagi diverses ocurrències del valor de cerca a la matriu de cerca, potser haureu d'obtenir la posició de la última ocurrència .

La direcció de la cerca es controla en el quart argument de XMATCH anomenat search_mode . Per cercar en ordre invers, és a dir, de baix a dalt en una matriu vertical i de dreta a esquerra en una matriu horitzontal, search_mode s'hauria d'establir a -1.

En aquest exemple, retornarà la posició de l'últim registre per a un valor de cerca específic (vegeu la captura de pantalla a continuació). Per a això, configureu els arguments comsegueix:

  • Lookup_value - el venedor objectiu a H1
  • Lookup_array - noms del venedor a C2:C10
  • Match_mode és 0 o s'omet (concordança exacta)
  • Search_mode és -1 (de l'últim al primer)

Posant els quatre arguments junts, obtenim aquesta fórmula:

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

Que retorna el número de l'última venda feta per Laura:

Com comparar dues columnes a Excel per a la coincidència

Per comparar dues llistes de coincidències, podeu utilitzar la funció XMATCH juntament amb IF i ISNA:

IF( ISNA( XMATCH( target_list, llista_cerca, 0)), "Sense coincidència", "Coincidència")

Per exemple, per comparar la llista 2 a B2:B10 amb la llista 1 a A2:A10, la fórmula té la forma següent:

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

En aquest exemple, identifiquem només coincidències, per tant, l'argument value_if_true de la funció IF és una cadena buida ("").

Introduïu la fórmula anterior a la cel·la superior (C2 en el nostre cas), premeu Retorn , i "s'abocarà" a les altres cel·les automàticament (i t s'anomena interval de vessament):

Com funciona aquesta fórmula

Al cor de la fórmula, la funció XMATCH cerca per a un valor de la llista 2 dins de la llista 1. Si es troba un valor, es retorna la seva posició relativa, en cas contrari un error #N/A. En el nostre cas, el resultat de XMATCH és la següent matriu:

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

Aquesta matriu s'"alimenta" a la funció ISNA per comprovar si hi ha errors #N/A.Per a cada error #N/A, ISNA retorna TRUE; per a qualsevol altre valor - FALSE. Com a resultat, produeix la següent matriu de valors lògics, on TRUE representen no coincidències i FALSE representen coincidències:

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

La matriu anterior passa a la prova lògica de la funció SI . Depenent de com hàgiu configurat els dos darrers arguments, la fórmula sortirà el text corresponent. En el nostre cas, és una cadena buida ("") per a no coincidències ( value_if_true ) i "Coincidència a la llista 1" per a coincidències ( value_if_false ).

Nota. Aquesta fórmula només funciona a Excel 365 i Excel 2021 que admeten matrius dinàmiques. Si utilitzeu Excel 2019, Excel 2016 o una versió anterior, consulteu altres solucions: Com comparar dues columnes a Excel.

INDEX XMATCH a Excel

XMATCH es pot utilitzar en combinació amb la funció INDEX per recuperar un valor d'una altra columna associada amb el valor de cerca, igual que la fórmula INDEX MATCH. L'enfocament genèric és el següent:

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

El La lògica és molt senzilla i fàcil de seguir:

La funció XMATCH calcula la posició relativa del valor de cerca a la matriu de cerca i la passa a l'argument row_num d'INDEX. En funció de la fila número, la funció INDEX retorna un valor de qualsevol columna que especifiqueu.

Per exemple, per cercar l'àreade l'oceà a E1, podeu utilitzar aquesta fórmula:

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

INDEX XMATCH XMATCH per fer una cerca bidimensional

Per cerqueu en columnes i files simultàniament, utilitzeu INDEX juntament amb dues funcions XMATCH. El primer XMATCH obtindrà el número de fila i el segon recuperarà el número de columna:

INDEX ( dades , XMATCH ( lookup_value , vertical _ lookup_array ), XMATCH ( lookup value , horitzontal _ lookup_array )))

La fórmula és similar a INDEX MATCH MATCH excepte que pot ometre l'argument match_mode ja que per defecte és la coincidència exacta.

Per exemple, per recuperar un número de vendes per a un article determinat (G1) en un mes específic (G2), la fórmula és :

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

On B2:D8 són cel·les de dades excloent les capçaleres de files i columnes, A2:A8 és una llista d'elements i B1:D1 són noms de mesos.

Fórmula XMATCH que distingeix entre majúscules i minúscules

Com ja s'ha esmentat, la funció XMATCH d'Excel no distingeix entre majúscules i minúscules per disseny. Per forçar-lo a distingir entre majúscules i minúscules de text, utilitzeu XMATCH en combinació amb la funció EXACTE:

MATCH(TRUE, EXACT( lookup_array , lookup_value ))

Per cercar a ordre invers de l'últim al primer:

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

L'exemple següent mostra aquesta fórmula genèrica en acció. Suposant que teniu una llista d'identificadors de producte que distingeixen entre majúscules i minúscules a B2:B11. Esteu buscantTrobeu la posició relativa de l'element a E1. Una fórmula que distingeix entre majúscules i minúscules a E2 és tan senzilla com aquesta:

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

Com funciona aquesta fórmula:

La funció EXACTA compara el valor de cerca amb cada element de la matriu de cerca. Si els valors comparats són exactament iguals, inclosos els caràcters, la funció retorna TRUE, FALSE en cas contrari. Aquesta matriu de valors lògics (on TRUE representen coincidències exactes) va a l'argument lookup_array de XMATCH. I com que el valor de cerca és TRUE, la funció XMATCH retorna la posició de la primera coincidència exacta trobada o la darrera coincidència exacta, depenent de com hàgiu configurat l'argument search_mode .

XMATCH vs. MATCH a Excel

XMATCH es va dissenyar com un substitut més potent i versàtil de MATCH, de manera que aquestes dues funcions tenen molt en comú. Tanmateix, hi ha diferències essencials.

Comportament predeterminat diferent

La funció COINCORDA per defecte té la concordança exacta o el següent element més petit ( match_type establert a 1 o s'omet).

La funció XMATCH té per defecte la concordança exacta ( match_mode establert a 0 o s'ha omès).

Comportament diferent per a la coincidència aproximada

Quan el match_mode L'argument / match_type s'estableix en 1:

  • MATCH cerca la coincidència exacta o la següent més petita. Requereix que la matriu de cerca s'ordeni en ordre ascendent.
  • XMATCH cerca exactament

Michael Brown és un entusiasta de la tecnologia dedicat amb una passió per simplificar processos complexos mitjançant eines de programari. Amb més d'una dècada d'experiència en la indústria tecnològica, ha perfeccionat les seves habilitats en Microsoft Excel i Outlook, així com en Google Sheets i Docs. El bloc de Michael es dedica a compartir els seus coneixements i experiència amb altres persones, oferint consells i tutorials fàcils de seguir per millorar la productivitat i l'eficiència. Tant si sou un professional experimentat com si sou un principiant, el bloc de Michael ofereix valuoses idees i consells pràctics per treure el màxim profit d'aquestes eines de programari essencials.