Excel XMATCH funksie met formule voorbeelde

  • Deel Dit
Michael Brown
soek maar werk net korrek op gesorteer lyste. Op ongesorteerde data kan dit verkeerde resultate gee wat met die eerste oogopslag redelik normaal kan lyk.

Die sintaksis van MATCH maak glad nie voorsiening vir die soekmodus-argument nie.

XMATCH hanteer skikkings oorspronklik

Anders as sy voorganger, is die XMATCH-funksie ontwerp vir dinamiese Excel en hanteer skikkings inheems, sonder dat jy Ctrl + Shift + Enter hoef te druk. Dit maak formules baie makliker om te bou en te redigeer, veral wanneer 'n paar verskillende funksies saam gebruik word. Vergelyk net die volgende oplossings:

  • Kleinlettergevoelige formule: XMATCH

    Die tutoriaal stel die nuwe Excel XMATCH-funksie bekend en wys hoe dit beter is as MATCH om 'n paar algemene take op te los.

    In Excel 365 is die XMATCH-funksie bygevoeg om die MATCH funksie. Maar voordat jy jou bestaande formules begin opgradeer, sal dit wys wees om alle voordele van die nuwe funksie te verstaan ​​en hoe dit van die ou een verskil.

    Opsommend, die XMATCH-funksie is dieselfde as MATCH maar meer buigsaam en robuust. Dit kan beide in vertikale en horisontale skikkings opsoek, eerste-tot-laaste of laaste-na-eerste soek, presiese, benaderde en gedeeltelike passings vind, en 'n vinniger binêre soekalgoritme gebruik.

    Excel XMATCH-funksie

    Die XMATCH-funksie in Excel gee die relatiewe posisie van 'n waarde in 'n skikking of 'n reeks selle terug.

    Dit het die volgende sintaksis:

    XMATCH(lookup_value , soek_skikking, [pasmodus], [soekmodus])

    Waar:

    Opsoekwaarde (vereis) - die waarde waarna gesoek moet word.

    Opsoek_skikking (vereis) - die skikking of reeks selle waar om te soek.

    Passmodus (opsioneel) - spesifiseer watter pasmaattipe om te gebruik:

    • 0 of weggelaat (verstek) - presiese passing
    • -1 - presiese passing of die volgende kleinste waarde
    • 1 - presiese passing of die volgende grootste waarde
    • 2 - wildkaartpassing ( *, ?)

    Soekmodus (opsioneel) - spesifiseer die soekrigting en algoritme:

    • 1 of weggelaat (verstek) -wedstryd of volgende grootste. Vereis geen sortering nie.

    Wanneer die passing_mode / match_type argument op -1 gestel is:

    • MATCH soektogte vir presiese passing of volgende grootste. Vereis dat die opsoekskikking in dalende volgorde gesorteer word.
    • XMATCH soek presiese passing of die volgende kleinste. Vereis geen sortering nie.

    Wildcard-soektog

    Om gedeeltelike passings met XMATCH te vind, moet jy die match_mode -argument op 2 stel.

    Die MATCH-funksie het nie 'n spesiale wildcard-pasmodusopsie nie. In die meeste gevalle sal jy dit opstel vir presiese passing ( passing_tipe gestel op 0), wat ook werk vir jokertekensoektogte.

    Soekmodus

    Soos die nuwe XLOOKUP funksie, XMATCH het 'n spesiale soekmodus -argument wat jou toelaat om die rigting van soek te definieer:

    • 1 of weggelaat (verstek) - soek eerste-na -laaste.
    • -1 - omgekeerde soektog laaste-na-eerste.

    En kies 'n binêre soekalgoritme , wat baie vinnig en doeltreffend is op gesorteerde data .

    • 2 - binêre soektog op data gesorteer stygend.
    • -2 - binêre soektog op data gesorteer dalend.

    Binêre soektog , ook genoem halfintervalsoektog of logaritmiese soektog , is 'n spesiale algoritme wat die posisie van 'n opsoekwaarde binne 'n skikking vind deur dit te vergelyk na die middelste element van die skikking. 'n Binêre soektog is baie vinniger as 'n gewonesoek van eerste tot laaste.

  • -1 - soek in omgekeerde volgorde van laaste na eerste.
  • 2 - binêre soektog stygend. Vereis dat opsoek_skikking in stygende volgorde gesorteer word.
  • -2 - binêre soektog dalende. Vereis dat opsoek_skikking in dalende volgorde gesorteer word.

Binêre soektog is 'n vinniger algoritme wat doeltreffend op gesorteerde skikkings werk. Vir meer inligting, sien asseblief Soekmodus.

Watter Excel-weergawe het XMATCH?

Die XMATCH-funksie is slegs beskikbaar in Excel vir Microsoft 365 en Excel 2021. In Excel 2019, Excel 2016 en vroeër weergawes, word hierdie funksie nie ondersteun nie.

Basiese XMATCH-formule in Excel

Om 'n algemene idee te kry van waartoe die funksie in staat is, kom ons bou 'n XMATCH-formule in sy eenvoudigste vorm, en definieer slegs die eerste twee het argumente vereis en laat die opsioneles aan hul verstekwaardes.

Gestel, jy het 'n lys van oseane wat volgens hul grootte gerangskik is (C2:C6) en jy wil die rang van 'n spesifieke oseaan vind. Om dit te laat doen, gebruik eenvoudig die oseaan se naam, sê Indiese , as die opsoekwaarde en die hele lys name as die opsoekskikking:

=XMATCH("Indian", C2:C6)

Om te maak die formule meer buigsaam, voer die see van belang in een of ander sel in, sê F1:

=XMATCH(F1, C2:C6)

Gevolglik kry jy 'n XMATCH-formule om op te soek in 'n vertikale skikking . Die uitset is die relatiewe posisie van die opsoekwaarde in die skikking, wat in ons gevalstem ooreen met die see se rangorde:

'n Soortgelyke formule werk ook perfek vir 'n horisontale skikking . Al wat jy hoef te doen is om die lookup_array -verwysing aan te pas:

=XMATCH(B5, B1:F1)

Excel XMATCH-funksie - dinge om te onthou

Om XMATCH effektief in jou werkblaaie te gebruik en onverwagte resultate te voorkom, onthou asseblief hierdie 3 eenvoudige feite:

  • As daar twee of meer voorkomste van die opsoekwaarde in die opsoekskikking is, is die posisie van die eerste pasmaat word teruggestuur as die soekmodus -argument op 1 gestel is of weggelaat is. Met soekmodus op -1 gestel, soek die funksie in omgekeerde volgorde en gee die posisie van die laaste passing terug soos in hierdie voorbeeld gedemonstreer.
  • As die opsoekwaarde nie gevind word nie , vind 'n #N/A-fout plaas.
  • Die XMATCH-funksie is van nature hoofletter-onsensitief en kan nie die letterkas onderskei nie. Om kleinletters en hoofletters te onderskei, gebruik hierdie hooflettersensitiewe XMATCH-formule.

Hoe om XMATCH in Excel te gebruik - formulevoorbeelde

Die volgende voorbeelde sal jou help om meer begrip oor die XMATCH-funksie en sy praktiese gebruike.

Presiese pasmaat vs. benaderde pasmaat

Die pasgedrag van XMATCH word beheer deur die opsionele match_mode -argument:

  • 0 of weggelaat (verstek) - die formule soek net vir presiese passing. As 'n presiese passing nie gevind word nie, a#N/A fout word teruggestuur.
  • -1 - die formule soek eers vir presiese passing, en dan vir die volgende kleiner item.
  • 1 - die formule soek eers vir presiese passing, en dan vir die volgende groter item.

En nou, kom ons kyk hoe verskillende pasmodusse die formule se resultaat beïnvloed. Gestel jy wil uitvind waar 'n sekere gebied, sê 80 000 000 km2, tussen al die oseane staan.

Presiese passing

As jy 0 gebruik vir match_mode , sal jy' Ek sal 'n #N/A-fout kry, want die formule kan nie 'n waarde vind wat presies gelyk is aan die opsoekwaarde nie:

=XMATCH(80000000, C2:C6, 0)

Volgende kleinste item

As jy -1 gebruik vir passing_mode , sal die formule 3 gee, want die naaste passing kleiner as die opsoekwaarde is 70 560 000, en dit is die 3de item in die opsoekskikking:

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

Volgende grootste item

As jy 1 vir passing_mode gebruik, sal die formule 2 uitvoer, want die naaste passing groter as die opsoekwaarde is 85,133,000, wat die 2de item in die opsoekskikking is :

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

Die prent hieronder wys al die resultate:

Hoe om gedeeltelike teks in Excel met jokertekens te pas

Die XMATCH-funksie het 'n spesiale pasmodus vir jokertekens: die match_mode -argument is op 2 gestel.

In die jokerteken-pasmodus aanvaar 'n XMATCH-formule die volgende jokerteken karakters:

  • Vraagteken (?) om enige enkele karakter te pas.
  • Asterisk (*) om enige karakter te pas.volgorde van karakters.

Hou asseblief in gedagte dat jokertekens net met teks werk, nie syfers nie.

Om byvoorbeeld die posisie van die eerste item te vind wat met "suid" begin , die formule is:

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

Of jy kan jou jokerteken-uitdrukking in een of ander sel tik, sê F1, en die selverwysing verskaf vir die opsoekwaarde -argument:

=XMATCH(F1, B2:B6, 2)

Met die meeste Excel-funksies sal jy tilde (~) gebruik om die asterisk (~*) of vraagteken (~?) as letterlik te behandel karakters, nie jokertekens nie. Met XMATCH is tilde nie nodig nie. As jy nie die wildcard-pasmodus definieer nie, sal XMATCH aanvaar dat ? en * is gereelde karakters.

Byvoorbeeld, die onderstaande formule sal die reeks A2:A7 presies deursoek vir die asterisk-karakter:

=XMATCH("*", A2:A7)

XMATCH omgekeerde soektog om die laaste passing te vind

In die geval dat daar verskeie voorkoms van die opsoekwaarde in die opsoekskikking is, moet jy soms die posisie van die laaste voorkoms kry .

Die soekrigting word beheer deur die 4de argument van XMATCH genaamd soekmodus . Om in omgekeerde volgorde te soek, dit wil sê van onder na bo in 'n vertikale skikking en van regs na links in 'n horisontale skikking, moet soekmodus op -1 gestel word.

In hierdie voorbeeld, ons sal die posisie van die laaste rekord vir 'n spesifieke opsoekwaarde terugstuur (sien asseblief die skermkiekie hieronder). Hiervoor stel die argumente op asvolg:

  • Opsoekwaarde - die teikenverkoopspersoon in H1
  • Opsoek_skikking - verkoopspersoonname in C2:C10
  • Passmodus is 0 of weggelaat (presiese passing)
  • Soekmodus is -1 (laaste-na-eerste)

Plaats die vier argumente saam, kry ons hierdie formule:

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

Wat die nommer van die laaste verkope wat deur Laura gemaak is, gee:

Hoe om vergelyk twee kolomme in Excel vir passing

Om twee lyste vir passings te vergelyk, kan jy die XMATCH-funksie saam met IF en ISNA gebruik:

IF( ISNA( XMATCH( teikenlys, soeklys, 0)), "Geen pas nie", "pas")

Om byvoorbeeld Lys 2 in B2:B10 met Lys 1 in A2:A10 te vergelyk, neem die formule die volgende vorm aan:

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

In hierdie voorbeeld identifiseer ons slegs passings, daarom is die waarde_as_waar -argument van die IF-funksie 'n leë string ("").

Tik die bogenoemde formule in die boonste sel (C2 in ons geval), druk Enter, en dit sal outomaties in die ander selle "mors" (i t word 'n morsreeks genoem):

Hoe hierdie formule werk

In die kern van die formule soek die XMATCH-funksie vir 'n waarde uit Lys 2 binne Lys 1. As 'n waarde gevind word, word sy relatiewe posisie teruggestuur, anders 'n #N/A fout. In ons geval is die resultaat van XMATCH die volgende skikking:

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

Hierdie skikking word na die ISNA-funksie "gevoer" om gekontroleer te word vir #N/A-foute.Vir elke #N/A-fout gee ISNA TRUE terug; vir enige ander waarde - ONWAAR. As gevolg hiervan produseer dit die volgende skikking van logiese waardes, waar WAAR's nie-passings verteenwoordig, en ONWAAR's verteenwoordig passings:

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

Bogenoemde skikking gaan na die logiese toets van die IF-funksie . Afhangende van hoe jy die laaste twee argumente gekonfigureer het, sal die formule die ooreenstemmende teks uitvoer. In ons geval is dit 'n leë string ("") vir nie-passings ( waarde_as_waar ) en "Pas in Lys 1" vir passings ( waarde_as_vals ).

Let wel. Hierdie formule werk net in Excel 365 en Excel 2021 wat dinamiese skikkings ondersteun. As jy Excel 2019, Excel 2016 of vroeër weergawe gebruik, kyk asseblief na ander oplossings: Hoe om twee kolomme in Excel te vergelyk.

INDEX XMATCH in Excel

XMATCH kan in kombinasie met die INDEX funksie gebruik word om 'n waarde uit 'n ander kolom te haal wat met die opsoekwaarde geassosieer word, net soos die INDEX MATCH formule. Die generiese benadering is soos volg:

INDEX ( terugsending _ skikking , XMATCH ( opsoekwaarde , opsoekskikking )

Die logika is baie eenvoudig en maklik om te volg:

Die XMATCH-funksie bereken die relatiewe posisie van die opsoekwaarde in die opsoekskikking en gee dit deur na die rynommer -argument van INDEX. Gebaseer op die ry getal, gee die INDEX-funksie 'n waarde terug uit enige kolom wat jy spesifiseer.

Om byvoorbeeld die area op te soekvan die see in E1, kan jy hierdie formule gebruik:

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

INDEX XMATCH XMATCH om 2-dimensionele opsoek uit te voer

Om kyk op in kolomme en rye gelyktydig, gebruik INDEX saam met twee XMATCH-funksies. Die eerste XMATCH sal die rynommer kry en die tweede een sal die kolomnommer ophaal:

INDEX ( data , XMATCH ( opsoekwaarde , vertikaal _ opsoek-skikking ), XMATCH ( opsoekwaarde , horisontale _ opsoek-skikking ))

Die formule is soortgelyk aan INDEX MATCH MATCH behalwe dat jy kan die match_mode -argument weglaat aangesien dit verstek op presiese passing is.

Om byvoorbeeld 'n verkoopsnommer vir 'n gegewe item (G1) in 'n spesifieke maand (G2) te verkry, is die formule :

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

Waar B2:D8 dataselle is wat ry- en kolomopskrifte uitsluit, is A2:A8 'n lys items en B1:D1 is maandname.

Kase-sensitiewe XMATCH-formule

Soos reeds genoem, is die Excel XMATCH-funksie deur ontwerp hoofletter-onsensitief. Om dit te dwing om teksletters te onderskei, gebruik XMATCH in kombinasie met die EXACT-funksie:

MATCH(TRUE, EXACT( lookup_array , lookup_value ))

Om te soek in omgekeerde volgorde van laaste na eerste:

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

Die volgende voorbeeld wys hierdie generiese formule in aksie. Gestel jy het 'n lys van hooflettersensitiewe produk-ID's in B2:B11. Jy soek navind die relatiewe posisie van die item in E1. 'n Hooflettergevoelige formule in E2 is so eenvoudig soos hierdie:

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

Hoe hierdie formule werk:

Die EXACT-funksie vergelyk die opsoekwaarde met elke item in die opsoekskikking. As die vergelykende waardes presies gelyk is, insluitend die karakters se hoofletters, gee die funksie TRUE, ONWAAR anders terug. Hierdie reeks logiese waardes (waar WAAR's presiese passings verteenwoordig) gaan na die opsoek_skikking -argument van XMATCH. En omdat die opsoekwaarde WAAR is, gee die XMATCH-funksie die posisie van die eerste gevind presiese passing of die laaste presiese passing terug, afhangende van hoe jy die search_mode argument gekonfigureer het.

XMATCH vs. MATCH in Excel

XMATCH is ontwerp as 'n kragtiger en veelsydige plaasvervanger vir MATCH, en dus het hierdie twee funksies baie in gemeen. Daar is egter wesenlike verskille.

Verskillende verstekgedrag

Die MATCH-funksie is verstek na presiese passing of die volgende kleinste item ( passing_tipe gestel op 1 of weggelaat).

Die XMATCH-funksie is verstek na presiese passing ( passing_mode gestel op 0 of weggelaat).

Verskillende gedrag vir benaderde passing

Wanneer die match_mode / passing_tipe argument is ingestel op 1:

  • MATCH soek presiese passing of die volgende kleinste. Vereis dat die opsoekskikking in stygende volgorde gesorteer moet word.
  • XMATCH soek presies

Michael Brown is 'n toegewyde tegnologie-entoesias met 'n passie om komplekse prosesse te vereenvoudig deur sagteware-instrumente te gebruik. Met meer as 'n dekade se ondervinding in die tegnologiebedryf, het hy sy vaardighede in Microsoft Excel en Outlook, sowel as Google Sheets en Docs, opgeskerp. Michael se blog is toegewy daaraan om sy kennis en kundigheid met ander te deel, en verskaf maklik-om-te volg wenke en tutoriale vir die verbetering van produktiwiteit en doeltreffendheid. Of jy nou 'n ervare professionele persoon of 'n beginner is, Michael se blog bied waardevolle insigte en praktiese raad om die meeste uit hierdie noodsaaklike sagteware-nutsmiddels te kry.