Innholdsfortegnelse
Syntaksen til MATCH gir ikke søkemodusargumentet i det hele tatt.
XMATCH håndterer matriser naturlig
I motsetning til forgjengeren, ble XMATCH-funksjonen designet for dynamisk Excel og håndterer arrays naturlig, uten at du trenger å trykke Ctrl + Shift + Enter. Dette gjør formler mye enklere å bygge og redigere, spesielt når du bruker noen få forskjellige funksjoner sammen. Bare sammenlign følgende løsninger:
- Stillingssensitiv formel: XMATCH
Opplæringen introduserer den nye Excel XMATCH-funksjonen og viser hvordan den er bedre enn MATCH for å løse noen vanlige oppgaver.
I Excel 365 ble XMATCH-funksjonen lagt til for å erstatte MATCH funksjon. Men før du begynner å oppgradere dine eksisterende formler, vil det være lurt å forstå alle fordelene med den nye funksjonen og hvordan den skiller seg fra den gamle.
Opsummert er XMATCH-funksjonen den samme som MATCH, men mer fleksibel og robust. Den kan slå opp både i vertikale og horisontale matriser, søke først til sist eller sist til først, finne eksakte, omtrentlige og delvise treff, og bruke en raskere binær søkealgoritme.
Excel XMATCH-funksjonen
XMATCH-funksjonen i Excel returnerer den relative posisjonen til en verdi i en matrise eller et celleområde.
Den har følgende syntaks:
XMATCH(oppslagsverdi , lookup_array, [match_mode], [search_mode])Hvor:
Oppslagsverdi (obligatorisk) – verdien å se etter.
Oppslagsmatrise (obligatorisk) - matrisen eller celleområdet hvor det skal søkes.
Match_mode (valgfritt) - spesifiserer hvilken samsvarstype som skal brukes:
- 0 eller utelatt (standard) - eksakt samsvar
- -1 - eksakt samsvar eller nest minste verdi
- 1 - eksakt samsvar eller nest største verdi
- 2 - jokertegn ( *, ?)
Søkemodus (valgfritt) - spesifiserer søkeretningen og algoritmen:
- 1 eller utelatt (standard) -match eller nest størst. Krever ingen sortering.
Når argumentet match_mode / match_type er satt til -1:
- MATCH søker for eksakt samsvar eller nest størst. Krever sortering av oppslagsmatrisen i synkende rekkefølge.
- XMATCH søker etter eksakt samsvar eller nest minste. Krever ingen sortering.
Jokertegnsøk
For å finne delvise treff med XMATCH, må du sette argumentet match_mode til 2.
MATCH-funksjonen har ikke et spesielt alternativ for matchmodus med jokertegn. I de fleste tilfeller vil du konfigurere det for eksakt samsvar ( match_type sett til 0), som også fungerer for jokertegnsøk.
Søkemodus
Som den nye XLOOKUP funksjon, har XMATCH et spesielt søkemodus -argument som lar deg definere søkeretningen :
- 1 eller utelatt (standard) - søk først til -siste.
- -1 - omvendt søk sist-til-først.
Og velg en binær søkealgoritme , som er veldig rask og effektiv på sorterte data .
- 2 - binært søk på data sortert stigende.
- -2 - binært søk på data sortert synkende.
Binært søk , også kalt halvintervallsøk eller logaritmisk søk , er en spesiell algoritme som finner posisjonen til en oppslagsverdi i en matrise ved å sammenligne den til midtelementet i matrisen. Et binært søk er mye raskere enn et vanligsøk fra første til siste.
- -1 - søk i omvendt rekkefølge fra sist til først.
- 2 - binært søk stigende. Krever at oppslagsmatrise sorteres i stigende rekkefølge.
- -2 - binært søk synkende. Krever at oppslagsmatrise sorteres i synkende rekkefølge.
Binært søk er en raskere algoritme som fungerer effektivt på sorterte matriser. For mer informasjon, se søkemodus.
Hvilken Excel-versjon har XMATCH?
XMATCH-funksjonen er kun tilgjengelig i Excel for Microsoft 365 og Excel 2021. I Excel 2019, Excel 2016 og tidligere versjoner, støttes ikke denne funksjonen.
Grunnleggende XMATCH-formel i Excel
For å få en generell ide om hva funksjonen er i stand til, la oss bygge en XMATCH-formel i dens enkleste form, og kun definere de to første kreves argumenter og overlater de valgfrie til standardverdiene.
Anta at du har en liste over hav rangert etter størrelse (C2:C6) og du ønsker å finne rangeringen til et bestemt hav. For å få det gjort, bruk bare havets navn, si Indisk , som oppslagsverdi og hele listen over navn som oppslagsmatris:
=XMATCH("Indian", C2:C6)
For å lage formelen mer fleksibel, skriv inn havet av interesse i en celle, si F1:
=XMATCH(F1, C2:C6)
Som et resultat får du en XMATCH-formel å slå opp i en vertikal matrise . Utgangen er den relative posisjonen til oppslagsverdien i matrisen, som i vårt tilfelletilsvarer havets rangering:
En lignende formel fungerer perfekt for en horisontal matrise også. Alt du trenger å gjøre er å justere lookup_array -referansen:
=XMATCH(B5, B1:F1)
Excel XMATCH-funksjonen - ting å huske
For å effektivt bruke XMATCH i regnearkene dine og forhindre uventede resultater, husk disse tre enkle fakta:
- Hvis det er to eller flere forekomster av oppslagsverdien i oppslagsmatrisen, vil posisjonen til første match returneres hvis søkemodus -argumentet er satt til 1 eller utelatt. Med søkemodus satt til -1, søker funksjonen i omvendt rekkefølge og returnerer posisjonen til siste samsvar som vist i dette eksemplet.
- Hvis oppslagsverdien finnes ikke , oppstår en #N/A-feil.
- XMATCH-funksjonen er uavhengig av store og små bokstaver av natur og kan ikke skille mellom store og små bokstaver. For å skille mellom små og store bokstaver, bruk denne XMATCH-formelen som skiller mellom store og små bokstaver.
Hvordan bruke XMATCH i Excel - formeleksempler
De følgende eksemplene vil hjelpe deg å få mer forståelse om XMATCH-funksjonen og dens praktiske bruk.
Eksakt samsvar vs. omtrentlig samsvar
Samsvarsadferden til XMATCH kontrolleres av det valgfrie match_mode -argumentet:
- 0 eller utelatt (standard) - formelen søker kun etter eksakt samsvar. Hvis et eksakt samsvar ikke blir funnet, a#N/A feil returneres.
- -1 - formelen søker etter eksakt samsvar først, og deretter etter det neste mindre elementet.
- 1 - formelen søker etter eksakt samsvar først, og deretter for det neste større elementet.
Og nå, la oss se hvordan forskjellige matchmoduser påvirker formelens resultat. Anta at du vil finne ut hvor et bestemt område, for eksempel 80 000 000 km2, står blant alle verdenshavene.
Eksakt samsvar
Hvis du bruker 0 for match_mode , vil få en #N/A feil, fordi formelen ikke kan finne en verdi som er nøyaktig lik oppslagsverdien:
=XMATCH(80000000, C2:C6, 0)
Neste minste element
Hvis du bruker -1 for match_mode vil formelen returnere 3, fordi det nærmeste samsvaret som er mindre enn oppslagsverdien er 70 560 000, og det er det tredje elementet i oppslagsmatrisen:
=XMATCH(80000000, C2:C6, -1)
Nest største element
Hvis du bruker 1 for match_mode , vil formelen gi ut 2, fordi det nærmeste samsvaret større enn oppslagsverdien er 85 133 000, som er det andre elementet i oppslagsmatrisen :
=XMATCH(80000000, C2:C6, -1)
Bildet nedenfor viser alle resultatene:
Hvordan matcher deltekst i Excel med jokertegn
XMATCH-funksjonen har en spesiell matchmodus for jokertegn: match_mode -argumentet satt til 2.
I jokertegnsmatchmodusen godtar en XMATCH-formel følgende jokertegn tegn:
- Spørsmålstegn (?) for å matche et enkelt tegn.
- Asterisk (*) for å matche et hvilket som helst tegn.sekvens av tegn.
Husk at jokertegn bare fungerer med tekst, ikke tall.
For eksempel for å finne posisjonen til det første elementet som starter med "sør" , formelen er:
=XMATCH("south*", B2:B6, 2)
Eller du kan skrive jokertegnuttrykket i en celle, si F1, og oppgi cellereferansen for oppslagsverdi -argumentet:
=XMATCH(F1, B2:B6, 2)
Med de fleste Excel-funksjoner vil du bruke tilde (~) for å behandle stjernen (~*) eller spørsmålstegnet (~?) som bokstavelig tegn, ikke jokertegn. Med XMATCH er tilde ikke nødvendig. Hvis du ikke definerer jokertegnsmatchmodus, vil XMATCH anta at ? og * er vanlige tegn.
For eksempel vil formelen nedenfor søke i området A2:A7 nøyaktig etter stjernetegnet:
=XMATCH("*", A2:A7)
XMATCH omvendt søk for å finne siste treff
Hvis det er flere forekomster av oppslagsverdien i oppslagsmatrisen, kan det hende du må finne posisjonen til siste forekomst .
Søkets retning styres ved å være det fjerde argumentet til XMATCH kalt søkemodus . For å søke i omvendt rekkefølge, dvs. fra bunn til topp i en vertikal matrise og fra høyre til venstre i en horisontal matrise, bør søkemodus settes til -1.
I dette eksempelet vil returnere posisjonen til den siste posten for en spesifikk oppslagsverdi (se skjermbildet nedenfor). For dette, sett opp argumentene somfølger:
- Oppslagsverdi - målselgeren i H1
- Oppslagsmatrise - selgernavn i C2:C10
- Samsvarsmodus er 0 eller utelatt (eksakt samsvar)
- Søkemodus er -1 (sist til først)
Sett de fire argumenter sammen, får vi denne formelen:
=XMATCH(H1, C2:C10, 0, -1)
Som returnerer nummeret på det siste salget gjort av Laura:
Hvordan sammenligne to kolonner i Excel for treff
For å sammenligne to lister for treff, kan du bruke XMATCH-funksjonen sammen med IF og ISNA:
IF( ISNA( XMATCH( target_list, søkeliste, 0)), "Ingen samsvar", "Samsvar")For å sammenligne liste 2 i B2:B10 for eksempel med liste 1 i A2:A10, har formelen følgende form:
=IF(ISNA(XMATCH(B2:B10, A2:A9)), "", "Match in List 1")
I dette eksemplet identifiserer vi bare treff, derfor er verdi_hvis_sann -argumentet til HVIS-funksjonen en tom streng ("").
Skriv inn formelen ovenfor i den øverste cellen (C2 i vårt tilfelle), trykk Enter, og den vil automatisk "søle" inn i de andre cellene (dvs. t kalles et spillområde):
Hvordan denne formelen fungerer
I hjertet av formelen søker XMATCH-funksjonen for en verdi fra liste 2 i liste 1. Hvis en verdi blir funnet, returneres dens relative posisjon, ellers en #N/A feil. I vårt tilfelle er resultatet av XMATCH følgende matrise:
{#N/A;#N/A;2;#N/A;4;#N/A;#N/A;8;#N/A}
Denne matrisen "mates" til ISNA-funksjonen for å bli sjekket for #N/A-feil.For hver #N/A feil returnerer ISNA TRUE; for enhver annen verdi - FALSE. Som et resultat produserer den følgende array av logiske verdier, der SANN-er representerer ikke-treff, og FALSE-er representerer treff:
{TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE}
Arrayen ovenfor går til den logiske testen av HVIS-funksjonen . Avhengig av hvordan du konfigurerte de to siste argumentene, vil formelen gi ut den tilsvarende teksten. I vårt tilfelle er det en tom streng ("") for ikke-treff ( verdi_hvis_sann ) og "Samsvar i liste 1" for samsvar ( verdi_hvis_false ).
Merk. Denne formelen fungerer bare i Excel 365 og Excel 2021 som støtter dynamiske matriser. Hvis du bruker Excel 2019, Excel 2016 eller tidligere versjon, vennligst sjekk ut andre løsninger: Hvordan sammenligne to kolonner i Excel.
INDEX XMATCH i Excel
XMATCH kan brukes i kombinasjon med INDEX-funksjonen for å hente en verdi fra en annen kolonne knyttet til oppslagsverdien, akkurat som INDEX MATCH-formelen. Den generiske tilnærmingen er som følger:
INDEX ( retur _ array , XMATCH ( lookup_value , lookup_array )logikken er veldig grei og enkel å følge:
XMATCH-funksjonen beregner den relative posisjonen til oppslagsverdien i oppslagsmatrisen og sender den til row_num -argumentet til INDEX. Basert på raden tall, returnerer INDEKS-funksjonen en verdi fra en hvilken som helst kolonne du angir.
For eksempel, for å slå opp områdetav havet i E1, kan du bruke denne formelen:
=INDEX(B2:B6, XMATCH(E1, A2:A6))
INDEX XMATCH XMATCH for å utføre 2-dimensjonalt oppslag
For å slå opp i kolonner og rader samtidig, bruk INDEX sammen med to XMATCH-funksjoner. Den første XMATCH vil få radnummeret og den andre vil hente kolonnenummeret:
INDEX ( data , XMATCH ( oppslagsverdi , vertikal _ oppslagsmatrise ), XMATCH ( oppslagsverdi , horisontal _ oppslagsmatrise ))Formelen ligner på INDEX MATCH MATCH bortsett fra at du kan utelate argumentet match_mode siden det er standard til eksakt samsvar.
For å hente et salgsnummer for en gitt vare (G1) i en bestemt måned (G2), er formelen for eksempel :
=INDEX(B2:D8, XMATCH(G1, A2:A8), XMATCH(G2, B1:D1))
Der B2:D8 er dataceller unntatt rad- og kolonneoverskrifter, er A2:A8 en liste over elementer og B1:D1 er månedsnavn.
Stilling-sensitiv XMATCH-formel
Som allerede nevnt, er Excel XMATCH-funksjonen ikke-sensitiv for store og små bokstaver. For å tvinge den til å skille mellom store og små bokstaver, bruk XMATCH i kombinasjon med EXACT-funksjonen:
MATCH(TRUE, EXACT( lookup_array , lookup_value ))For å søke i omvendt rekkefølge fra sist til første:
MATCH(TRUE, EXACT( oppslagsmatrise , oppslagsverdi ), 0, -1)Følgende eksempel viser denne generiske formelen i aksjon. Anta at du har en liste over store og små bokstaver i produkt-ID-er i B2:B11. Du ser etterfinn den relative plasseringen av elementet i E1. En formel som skiller mellom store og små bokstaver i E2 er så enkel som denne:
=XMATCH(TRUE, EXACT(B2:B11, E1))
Hvordan denne formelen fungerer:
EXACT-funksjonen sammenligner oppslagsverdien mot hvert element i oppslagsmatrisen. Hvis de sammenlignede verdiene er nøyaktig like, inkludert store og små bokstaver, returnerer funksjonen TRUE, FALSE ellers. Denne matrisen av logiske verdier (der TRUE representerer eksakte treff) går til lookup_array -argumentet til XMATCH. Og fordi oppslagsverdien er TRUE, returnerer XMATCH-funksjonen posisjonen til det første funnet eksakte samsvaret eller det siste eksakte samsvaret, avhengig av hvordan du konfigurerte search_mode -argumentet.
XMATCH vs. MATCH i Excel
XMATCH ble designet som en kraftigere og mer allsidig erstatning for MATCH, og derfor har disse to funksjonene mye til felles. Det er imidlertid vesentlige forskjeller.
Ulik standardoppførsel
SAMLING-funksjonen er standard til eksakt samsvar eller det nest minste elementet ( match_type satt til 1 eller utelatt).
XMATCH-funksjonen er standard til eksakt samsvar ( match_mode satt til 0 eller utelatt).
Ulik oppførsel for omtrentlig samsvar
Når match_mode Argumentet / match_type er satt til 1:
- MATCH søker etter eksakt samsvar eller nest minste. Krever at oppslagsmatrisen skal sorteres i stigende rekkefølge.
- XMATCH søker etter eksakt