Indholdsfortegnelse
Vejledningen introducerer den nye Excel-funktion XMATCH og viser, hvordan den er bedre end MATCH til at løse nogle få almindelige opgaver.
I Excel 365 blev XMATCH-funktionen tilføjet for at erstatte MATCH-funktionen. Men før du begynder at opgradere dine eksisterende formler, er det klogt at forstå alle fordelene ved den nye funktion, og hvordan den adskiller sig fra den gamle.
Sammenfattende er XMATCH-funktionen den samme som MATCH, men mere fleksibel og robust. Den kan slå op i både vertikale og horisontale arrays, søge fra først til sidst eller fra sidst til først, finde nøjagtige, omtrentlige og delvise matches og anvende en hurtigere binær søgealgoritme.
Excel XMATCH-funktion
XMATCH-funktionen i Excel returnerer den relative position for en værdi i et array eller en række celler.
Den har følgende syntaks:
XMATCH(opslag_værdi, opslagsarray, [match_mode], [search_mode])Hvor:
Opslag_værdi (påkrævet) - den værdi, der skal søges efter.
Opslag_array (påkrævet) - arrayet eller området af celler, hvor der skal søges.
Match_mode (valgfri) - angiver, hvilken type match der skal anvendes:
- 0 eller udeladt (standard) - nøjagtigt match
- -1 - nøjagtig overensstemmelse eller den næstmindste værdi
- 1 - nøjagtig overensstemmelse eller den næststørste værdi
- 2 - jokertegn (*, ?)
Search_mode (valgfrit) - angiver søgeretning og algoritme:
- 1 eller udeladt (standard) - søgning fra først til sidst.
- -1 - søg i omvendt rækkefølge fra sidst til først.
- 2 - binær søgning opadgående. opslagsbatteri skal sorteres i stigende orden.
- -2 - binær søgning nedadgående. opslagsbatteri skal sorteres i faldende rækkefølge.
Binær søgning er en hurtigere algoritme, der fungerer effektivt på sorterede arrays. Du kan finde flere oplysninger under Søgemåde.
Hvilken Excel-version har XMATCH?
XMATCH-funktionen er kun tilgængelig i Excel til Microsoft 365 og Excel 2021. I Excel 2019, Excel 2016 og tidligere versioner understøttes denne funktion ikke.
Grundlæggende XMATCH-formel i Excel
For at få en generel idé om, hvad funktionen er i stand til, kan vi opbygge en XMATCH-formel i sin enkleste form, idet vi kun definerer de to første nødvendige argumenter og lader de valgfrie argumenter være standardindstillingerne.
Hvis du har en liste over oceaner rangeret efter deres størrelse (C2:C6), og du ønsker at finde et bestemt oceans rang. For at få det gjort, skal du blot bruge havets navn, f.eks. Indisk , som opslagsværdi og hele listen over navne som opslagsarray:
=XMATCH("Indian", C2:C6)
For at gøre formlen mere fleksibel kan du indtaste det interessante hav i en celle, f.eks. F1:
=XMATCH(F1, C2:C6)
Som resultat får du en XMATCH-formel til at slå op i en lodret række Output er den relative position for opslagsværdien i arrayet, som i vores tilfælde svarer til havets rang:
En lignende formel fungerer perfekt til en vandret række også. Det eneste, du skal gøre, er at justere opslagsbatteri reference:
=XMATCH(B5, B1:F1)
Excel XMATCH-funktionen - ting at huske
Hvis du vil bruge XMATCH effektivt i dine regneark og undgå uventede resultater, skal du huske disse 3 enkle fakta:
- Hvis der er to eller flere forekomster af opslagsværdien i opslagsarrayet, vil positionen for første kamp returneres, hvis search_mode argumentet er sat til 1 eller udeladt. Med search_mode sat til -1, søger funktionen i omvendt rækkefølge og returnerer positionen for den sidste kamp som vist i dette eksempel.
- Hvis opslagsværdien ikke findes , opstår der en #N/A-fejl.
- XMATCH-funktionen er skift mellem store og små bogstaver Hvis du vil skelne mellem små og store bogstaver, skal du bruge denne XMATCH-formel, der tager hensyn til store og små bogstaver.
Sådan bruger du XMATCH i Excel - eksempler på formler
De følgende eksempler vil hjælpe dig med at få en bedre forståelse af XMATCH-funktionen og dens praktiske anvendelse.
Præcis match vs. tilnærmelsesvis match
XMATCH's matchningsadfærd styres af den valgfrie match_mode argument:
- 0 eller udeladt (standard) - formlen søger kun efter nøjagtig overensstemmelse. Hvis der ikke findes en nøjagtig overensstemmelse, returneres en #N/A-fejl.
- -1 - formlen søger først efter nøjagtig match og derefter efter det næste mindre element.
- 1 - formlen søger først efter nøjagtig match og derefter efter det næste større emne.
Lad os nu se, hvordan forskellige matchmetoder påvirker formlens resultat. Lad os antage, at du vil finde ud af, hvor et bestemt område, f.eks. 80.000.000 km2, befinder sig blandt alle verdenshavene.
Præcis match
Hvis du bruger 0 for match_mode får du en #N/A-fejl, fordi formlen ikke kan finde en værdi, der er nøjagtigt lig med opslagsværdien:
=XMATCH(80000000, C2:C6, 0)
Næste mindste punkt
Hvis du bruger -1 for match_mode vil formlen returnere 3, fordi det nærmeste match, der er mindre end opslagsværdien, er 70.560.000, og det er det tredje element i opslagsarrayet:
=XMATCH(80000000, C2:C6, -1)
Næste største punkt
Hvis du bruger 1 til match_mode vil formlen give 2, fordi det nærmeste match, der er større end opslagsværdien, er 85.133.000, som er det andet element i opslagsarrayet:
=XMATCH(80000000, C2:C6, -1)
Billedet nedenfor viser alle resultaterne:
Sådan matcher du delvis tekst i Excel med jokertegn
XMATCH-funktionen har en særlig matchtilstand for wildcards: den match_mode argumentet er sat til 2.
I wildcard-matchtilstand accepterer en XMATCH-formel følgende wildcard-tegn:
- Spørgsmålstegn (?) til at matche et hvilket som helst enkelt tegn.
- Asterisk (*) for at matche en hvilken som helst sekvens af tegn.
Husk, at jokertegn kun fungerer med tekst, ikke med tal.
For at finde positionen for det første element, der begynder med "south", er formlen f.eks:
=XMATCH("south*", B2:B6, 2)
Eller du kan skrive dit jokerudtryk i en celle, f.eks. F1, og angive cellehenvisningen til opslagsværdi argument:
=XMATCH(F1, B2:B6, 2)
Med de fleste Excel-funktioner bruger du tilde (~) til at behandle stjernetegn (~*) eller spørgsmålstegn (~?) som bogstavelige tegn og ikke som jokertegn. Med XMATCH er det ikke nødvendigt med tilde. Hvis du ikke definerer en jokertegnstilstand, antager XMATCH, at ? og * er almindelige tegn.
Nedenstående formel vil f.eks. søge i intervallet A2:A7 præcis efter stjernetegn:
=XMATCH("*", A2:A7)
XMATCH omvendt søgning for at finde den sidste match
Hvis der er flere forekomster af opslagsværdien i opslagsarrayet, kan du nogle gange have brug for at få positionen for den sidste forekomst .
Retningen af søgningen styres af det fjerde argument i XMATCH med navnet search_mode For at søge i omvendt rækkefølge, dvs. fra bunden til toppen i et lodret array og fra højre til venstre i et vandret array, search_mode skal sættes til -1.
I dette eksempel vil vi returnere positionen for den sidste post for en bestemt opslagsværdi (se skærmbilledet nedenfor). For at gøre dette skal du opsætte argumenterne som følger:
- Opslag_værdi - den målrettede sælger i H1
- Opslag_array - navne på sælgere i C2:C10
- Match_mode er 0 eller udeladt (nøjagtig match)
- Search_mode er -1 (fra sidst til først)
Ved at lægge de fire argumenter sammen får vi denne formel:
=XMATCH(H1, C2:C10, 0, -1)
Hvilket returnerer nummeret på det sidste salg foretaget af Laura:
Sådan sammenligner du to kolonner i Excel for at finde et match
Hvis du vil sammenligne to lister for at finde overensstemmelser, kan du bruge XMATCH-funktionen sammen med IF og ISNA:
IF( ISNA( XMATCH( target_list , search_list , 0))), "Ingen match", "Match")Hvis du f.eks. vil sammenligne Liste 2 i B2:B10 med Liste 1 i A2:A10, skal formlen have følgende formular:
=IF(ISNA(XMATCH(B2:B10, A2:A9)), "", "Match i liste 1")
I dette eksempel identificerer vi kun match, og derfor er value_if_true argumentet i IF-funktionen er en tom streng ("").
Indtast ovenstående formel i den øverste celle (C2 i vores tilfælde), tryk på Enter , og den vil automatisk "flyde" over i de andre celler (det kaldes et spill-område):
Sådan fungerer denne formel
I formlen søger XMATCH-funktionen efter en værdi fra liste 2 i liste 1. Hvis der findes en værdi, returneres dens relative position, ellers returneres en #N/A-fejl. I vores tilfælde er resultatet af XMATCH følgende array:
{#N/A;#N/A;2;#N/A;4;#N/A;#N/A;#N/A;#N/A;8;#N/A}
Dette array "fodres" til ISNA-funktionen, som kontrolleres for #N/A-fejl. For hver #N/A-fejl returnerer ISNA TRUE; for enhver anden værdi - FALSE. Som resultat får man følgende array af logiske værdier, hvor TRUE's repræsenterer ikke-match, og FALSE's repræsenterer match:
{TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE}
Ovenstående array går til den logiske test af IF-funktionen. Afhængigt af hvordan du har konfigureret de to sidste argumenter, vil formlen udgive den tilsvarende tekst. I vores tilfælde er det en tom streng ("") for ikke-matches ( value_if_true ) og "Match i liste 1" for matches ( value_if_false ).
Bemærk: Denne formel fungerer kun i Excel 365 og Excel 2021, der understøtter dynamiske arrays. Hvis du bruger Excel 2019, Excel 2016 eller tidligere versioner, kan du se andre løsninger: Sådan sammenligner du to kolonner i Excel.
INDEX XMATCH i Excel
XMATCH kan bruges i kombination med INDEX-funktionen til at hente en værdi fra en anden kolonne, der er forbundet med opslagsværdien, ligesom INDEX MATCH-formlen. Den generiske fremgangsmåde er som følger:
INDEX ( returnere _ array , XMATCH ( opslagsværdi , opslagsbatteri )Logikken er meget ligetil og let at følge:
XMATCH-funktionen beregner den relative position for opslagsværdien i opslagsarrayet og sender den til row_num INDEX-argumentet. Baseret på rækkens nummer returnerer INDEX-funktionen en værdi fra en hvilken som helst kolonne, som du angiver.
For eksempel kan du bruge denne formel til at finde havets areal i E1:
=INDEX(B2:B6, XMATCH(E1, A2:A6))
INDEX XMATCH XMATCH for at udføre 2-dimensionelt opslag
Hvis du vil slå op i kolonner og rækker samtidigt, skal du bruge INDEX sammen med to XMATCH-funktioner. Den første XMATCH får række-nummeret og den anden får kolonne-nummeret:
INDEX ( data , XMATCH ( opslagsværdi , lodret _ opslagsbatteri ), XMATCH ( opslagsværdi , vandret _ opslagsbatteri ))Formlen svarer til INDEX MATCH MATCH MATCH, bortset fra at du kan udelade match_mode argumentet, da det som standard er nøjagtigt matchende.
For at hente et salgstal for en given vare (G1) i en bestemt måned (G2) er formlen f.eks:
=INDEX(B2:D8, XMATCH(G1, A2:A8), XMATCH(G2, B1:D1))
Hvor B2:D8 er dataceller eksklusive række- og kolonneoverskrifter, A2:A8 er en liste over emner, og B1:D1 er månedsnavne.
XMATCH-formel, der tager hensyn til store og små bogstaver
Som allerede nævnt er XMATCH-funktionen i Excel designet til ikke at skelne mellem store og små bogstaver. Hvis du vil tvinge den til at skelne mellem tekstens store og små bogstaver, skal du bruge XMATCH i kombination med EXACT-funktionen:
MATCH(TRUE, EXACT( opslagsbatteri , opslagsværdi ))For at søge i omvendt rækkefølge fra sidst til først:
MATCH(TRUE, EXACT( opslagsbatteri , opslagsværdi ), 0, -1)Det følgende eksempel viser denne generiske formel i praksis. Antag, at du har en liste over produkt-id'er med hensyn til store og små bogstaver i B2:B11. Du ønsker at finde den relative position for varen i E1. En formel med hensyn til store og små bogstaver i E2 er lige så enkel som denne:
=XMATCH(TRUE, EXACT(B2:B11, E1))
Sådan fungerer denne formel:
EXACT-funktionen sammenligner opslagsværdien med hvert element i opslagsarrayet. Hvis de sammenlignede værdier er nøjagtigt ens, herunder tegn, returnerer funktionen TRUE, ellers FALSE. Dette array af logiske værdier (hvor TRUE'er repræsenterer nøjagtige match) går til opslagsbatteri argumentet i XMATCH. Og da opslagsværdien er TRUE, returnerer XMATCH-funktionen positionen for den første fundne nøjagtige match eller den sidste nøjagtige match, afhængigt af hvordan du har konfigureret XMATCH-funktionen search_mode argument.
XMATCH vs. MATCH i Excel
XMATCH blev udviklet som en mere kraftfuld og alsidig erstatning for MATCH, og derfor har de to funktioner meget til fælles, men der er dog væsentlige forskelle.
Forskellig standardadfærd
MATCH-funktionen er som standard nøjagtig match eller det næstmindste element ( match_type sat til 1 eller udeladt).
XMATCH-funktionen er som standard indstillet til nøjagtig match ( match_mode sat til 0 eller udeladt).
Forskellig adfærd ved tilnærmelsesvis match
Når den match_mode / match_type argumentet er sat til 1:
- MATCH søger efter nøjagtig overensstemmelse eller den næstmindste. Kræver, at opslagsarkivet skal sorteres i stigende orden.
- XMATCH søger efter nøjagtig overensstemmelse eller den næststørste. Det kræver ingen sortering.
Når den match_mode / match_type argumentet er sat til -1:
- MATCH søger efter nøjagtig overensstemmelse eller den næststørste. Kræver sortering af opslagsarkivet i faldende rækkefølge.
- XMATCH søger efter nøjagtig overensstemmelse eller den næstmindste. Der kræves ikke nogen sortering.
Søgning med jokertegn
For at finde delvise match med XMATCH skal du indstille match_mode argument til 2.
MATCH-funktionen har ikke en særlig indstilling for wildcard-matching. I de fleste tilfælde vil du konfigurere den til nøjagtigt match ( match_type sat til 0), hvilket også fungerer for wildcard-søgninger.
Søgemåde
Ligesom den nye XLOOKUP-funktion har XMATCH en særlig search_mode argument, der giver dig mulighed for at definere den søgningsretning :
- 1 eller udeladt (standard) - søger først til sidst.
- -1 - omvendt søgning fra sidst til først.
Og vælg en binær søgealgoritme , som er meget hurtig og effektiv på sorterede data .
- 2 - binær søgning på data sorteret i stigende orden.
- -2 - binær søgning på data sorteret i faldende rækkefølge.
Binær søgning , også kaldet søgning med halvt interval eller logaritmisk søgning , er en særlig algoritme, der finder positionen for en opslagsværdi i et array ved at sammenligne den med det midterste element i arrayet. En binær søgning er meget hurtigere end en almindelig søgning, men fungerer kun korrekt på sorterede lister. På usorterede data kan den give forkerte resultater, der umiddelbart kan se ret normale ud.
Syntaksen for MATCH indeholder slet ikke noget argument for søgemåde.
XMATCH håndterer arrays naturligt
I modsætning til sin forgænger er XMATCH-funktionen designet til dynamisk Excel og håndterer arrays naturligt, uden at du behøver at trykke på Ctrl + Shift + Enter . Dette gør formler meget nemmere at opbygge og redigere, især når du bruger et par forskellige funktioner sammen. Sammenlign blot de følgende løsninger:
- Formel, der tager hensyn til store og små bogstaver: XMATCH
- Sammenligning af to kolonner eller lister for at finde overensstemmelser: XMATCH
XMATCH og MATCH tilgængelighed
XMATCH er en ny funktion, og den er kun tilgængelig i Excel til Microsoft 365 og Excel 2021.
Funktionen MATCH er tilgængelig i alle versioner af Excel 365 til og med Excel 2007.
Sådan bruger du XMATCH-funktionen i Excel. Jeg takker for din læsning og håber at se dig på vores blog i næste uge!
Arbejdsbog til download
Eksempler på Excel XMATCH-formler (.xlsx-fil)