Innehållsförteckning
I handledningen presenteras den nya Excel-funktionen XMATCH och det visas hur den är bättre än MATCH för att lösa några vanliga uppgifter.
I Excel 365 har funktionen XMATCH lagts till för att ersätta funktionen MATCH. Men innan du börjar uppgradera dina befintliga formler är det klokt att förstå alla fördelar med den nya funktionen och hur den skiljer sig från den gamla.
Sammanfattningsvis är XMATCH-funktionen samma som MATCH men mer flexibel och robust. Den kan söka både i vertikala och horisontella matriser, söka från första till sista eller från sista till första, hitta exakta, ungefärliga och partiella träffar och använda en snabbare binär sökalgoritm.
Excel XMATCH-funktionen
XMATCH-funktionen i Excel returnerar den relativa positionen för ett värde i en matris eller ett cellintervall.
Den har följande syntax:
XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])Var:
Lookup_value (obligatoriskt) - det värde som ska sökas.
Lookup_array (krävs) - matris eller cellområde där du ska söka.
Match_mode (valfritt) - anger vilken matchningstyp som ska användas:
- 0 eller utelämnas (standard) - exakt matchning
- -1 - exakt matchning eller det näst minsta värdet
- 1 - exakt samma eller det näst största värdet
- 2 - jokerord (*, ?)
Sök_läge (valfritt) - anger sökriktning och algoritm:
- 1 eller utelämnas (standard) - söker från första till sista.
- -1 - söker i omvänd ordning från sist till först.
- 2 - binär sökning stigande. Lookup_array som ska sorteras i stigande ordning.
- -2 - binär sökning i fallande riktning. Kräver Lookup_array som ska sorteras i fallande ordning.
Binär sökning är en snabbare algoritm som fungerar effektivt på sorterade matriser. För mer information, se Sökläge.
Vilken Excel-version har XMATCH?
XMATCH-funktionen är endast tillgänglig i Excel för Microsoft 365 och Excel 2021. I Excel 2019, Excel 2016 och tidigare versioner stöds den här funktionen inte.
Grundläggande XMATCH-formel i Excel
För att få en allmän uppfattning om vad funktionen kan göra, låt oss bygga en XMATCH-formel i dess enklaste form, där vi bara definierar de två första nödvändiga argumenten och lämnar de valfria argumenten som standard.
Anta att du har en lista med oceaner rangordnade efter storlek (C2:C6) och att du vill ta reda på rangordningen för ett visst hav. För att få det gjort använder du helt enkelt havets namn, till exempel Indiska som uppslagsvärde och hela listan med namn som uppslagsarray:
=XMATCH("Indian", C2:C6)
För att göra formeln mer flexibel kan du skriva in det intressanta havet i en cell, till exempel F1:
=XMATCH(F1, C2:C6)
Som resultat får du en XMATCH-formel att söka upp i en vertikal matris Resultatet är den relativa positionen för uppslagsvärdet i matrisen, vilket i vårt fall motsvarar havets rang:
En liknande formel fungerar utmärkt för en horisontell matris Allt du behöver göra är att justera den Lookup_array referens:
=XMATCH(B5, B1:F1)
Excel XMATCH-funktionen - saker att komma ihåg
Om du vill använda XMATCH effektivt i dina arbetsblad och undvika oväntade resultat ska du komma ihåg dessa tre enkla fakta:
- Om det finns två eller fler förekomster av uppslagsvärdet i uppslagsarrayn, kommer positionen för första matchen returneras om search_mode (sökläge) är satt till 1 eller utelämnas. med search_mode (sökläge) till -1, söker funktionen i omvänd ordning och returnerar positionen för sista matchen som visas i det här exemplet.
- Om uppslagsvärdet inte hittas , ett #N/A-fel uppstår.
- XMATCH-funktionen är Skiftlägeskänslig För att skilja mellan små och stora bokstäver använder du den här XMATCH-formeln som är känslig för stora och små bokstäver.
Hur man använder XMATCH i Excel - exempel på formler
Följande exempel hjälper dig att få en bättre förståelse för XMATCH-funktionen och dess praktiska användningsområden.
Exakt matchning vs. ungefärlig matchning
XMATCHs matchningsbeteende styrs av den valfria match_mode argument:
- 0 eller utelämnas (standard) - formeln söker endast efter exakt matchning. Om en exakt matchning inte hittas returneras ett #N/A-fel.
- -1 - formeln söker först efter exakt matchning och sedan efter nästa mindre objekt.
- 1 - formeln söker först efter exakt matchning och sedan efter nästa större objekt.
Nu ska vi se hur olika matchningsmetoder påverkar formelns resultat. Anta att du vill ta reda på var ett visst område, låt oss säga 80 000 000 km2, ligger bland alla hav.
Exakt matchning
Om du använder 0 för match_mode får du ett #N/A-fel, eftersom formeln inte kan hitta ett värde som är exakt lika med uppslagsvärdet:
=XMATCH(80000000, C2:C6, 0)
Nästa minsta punkt
Om du använder -1 för match_mode kommer formeln att ge 3, eftersom den närmaste matchningen som är mindre än uppslagsvärdet är 70 560 000, och det är den tredje posten i uppslagsarrayn:
=XMATCH(80000000, C2:C6, -1)
Nästa största artikel
Om du använder 1 för match_mode kommer formeln att ge ut 2, eftersom den närmaste matchningen som är större än uppslagsvärdet är 85 133 000, vilket är det andra objektet i uppslagsarrayn:
=XMATCH(80000000, C2:C6, -1)
Bilden nedan visar alla resultat:
Hur man matchar partiell text i Excel med jokertecken
XMATCH-funktionen har ett särskilt matchningsläge för jokertecken: match_mode argumentet är satt till 2.
I matchningsläget för jokertecken accepterar en XMATCH-formel följande jokertecken:
- Frågetecken (?) för att matcha ett enskilt tecken.
- Asterisk (*) för att matcha vilken sekvens av tecken som helst.
Tänk på att jokertecken endast fungerar med text, inte med siffror.
Om du till exempel vill hitta positionen för det första objektet som börjar med "south" är formeln följande:
=XMATCH("south*", B2:B6, 2)
Eller så kan du skriva in ditt jokeruttryck i en cell, till exempel F1, och ange cellreferensen för Lookup_value argument:
=XMATCH(F1, B2:B6, 2)
Med de flesta Excel-funktioner använder du tilde (~) för att behandla asterisk (~*) eller frågetecken (~?) som bokstavstecken, inte som jokertecken. Med XMATCH behövs inte tilde. Om du inte definierar matchningsläget för jokertecken antar XMATCH att ? och * är vanliga tecken.
Formeln nedan söker till exempel i intervallet A2:A7 exakt efter asterisktecknet:
=XMATCH("*", A2:A7)
XMATCH omvänd sökning för att hitta den sista matchningen
Om det finns flera förekomster av uppslagsvärdet i uppslagsmatrisen kan du ibland behöva ta reda på positionen för senaste förekomst .
Sökriktningen styrs av det fjärde argumentet i XMATCH som heter search_mode (sökläge) För att söka i omvänd ordning, dvs. från botten till toppen i en vertikal matris och från höger till vänster i en horisontell matris, search_mode (sökläge) bör sättas till -1.
I det här exemplet returnerar vi positionen för den sista posten för ett visst uppslagsvärde (se skärmbilden nedan). För detta ställer du in argumenten på följande sätt:
- Lookup_value - målperson i H1
- Lookup_array - namn på säljare i C2:C10
- Match_mode är 0 eller utelämnas (exakt matchning)
- Sök_läge är -1 (sist till först)
Genom att sammanföra de fyra argumenten får vi denna formel:
=XMATCH(H1, C2:C10, 0, -1)
Vilket returnerar numret på den senaste försäljningen som Laura gjorde:
Hur man jämför två kolumner i Excel för matchning
Om du vill jämföra två listor för att hitta överensstämmelser kan du använda funktionen XMATCH tillsammans med IF och ISNA:
IF( ISNA( XMATCH( target_list , search_list , 0)), "Ingen match", "Match")Om du till exempel vill jämföra Lista 2 i B2:B10 med Lista 1 i A2:A10 har formeln följande form:
=IF(ISNA(XMATCH(B2:B10, A2:A9)), "", "Matchning i lista 1")
I det här exemplet identifierar vi endast matchningar, därför är value_if_true argumentet i IF-funktionen är en tom sträng ("").
Skriv in formeln ovan i den översta cellen (C2 i vårt fall), tryck på Enter och den kommer automatiskt att "spilla" in i de andra cellerna (det kallas för ett spillområde):
Hur denna formel fungerar
XMATCH-funktionen, som är kärnan i formeln, söker efter ett värde från lista 2 i lista 1. Om ett värde hittas returneras dess relativa position, annars returneras ett #N/A-fel. I vårt fall är resultatet av XMATCH följande matris:
{#N/A;#N/A;2;#N/A;4;#N/A;#N/A;#N/A;8;#N/A}
Denna matris "matas" till ISNA-funktionen för att kontrolleras för #N/A-fel. För varje #N/A-fel returnerar ISNA TRUE; för alla andra värden - FALSE. Som resultat får man följande matris av logiska värden, där TRUE representerar icke-matchningar och FALSE representerar matchningar:
{SANN;SANT;SANT;FALSKT;SANT;FALSKT;SANT;SANT;SANT;SANT;FALSKT;SANT}
Matrisen ovan går till det logiska testet av IF-funktionen. Beroende på hur du har konfigurerat de två sista argumenten kommer formeln att ge ut motsvarande text. I vårt fall är det en tom sträng ("") för icke-matchningar ( value_if_true ) och "Match i lista 1" för matchningar ( value_if_false ).
Den här formeln fungerar endast i Excel 365 och Excel 2021 som stöder dynamiska matriser. Om du använder Excel 2019, Excel 2016 eller tidigare versioner kan du läsa andra lösningar: Hur man jämför två kolumner i Excel.
INDEX XMATCH i Excel
XMATCH kan användas i kombination med INDEX-funktionen för att hämta ett värde från en annan kolumn som är associerad med uppslagsvärdet, precis som INDEX MATCH-formeln. Det generiska tillvägagångssättet är följande:
INDEX ( Återge . _ matris , XMATCH ( Lookup_value , Lookup_array )Logiken är mycket enkel och lätt att följa:
XMATCH-funktionen beräknar den relativa positionen för uppslagsvärdet i uppslagsmatrisen och skickar den till row_num Argumentet för INDEX. Baserat på radnumret returnerar INDEX-funktionen ett värde från vilken kolumn som helst som du anger.
Om du till exempel vill ta reda på havets yta i E1 kan du använda följande formel:
=INDEX(B2:B6, XMATCH(E1, A2:A6))
INDEX XMATCH XMATCH för att utföra 2-dimensionell sökning
Om du vill söka i kolumner och rader samtidigt använder du INDEX tillsammans med två XMATCH-funktioner. Den första XMATCH-funktionen hämtar radnumret och den andra hämtar kolumnnumret:
INDEX ( uppgifter , XMATCH ( Lookup_value , vertikal _ Lookup_array ), XMATCH ( Uppslagsvärde , horisontell _ Lookup_array ))Formeln liknar INDEX MATCH MATCH MATCH förutom att du kan utelämna match_mode eftersom det är standard för exakt matchning.
Om du till exempel vill hämta ett försäljningsnummer för en viss artikel (G1) under en viss månad (G2) är formeln följande:
=INDEX(B2:D8, XMATCH(G1, A2:A8), XMATCH(G2, B1:D1))
Där B2:D8 är dataceller exklusive rad- och kolumnrubriker, A2:A8 är en lista med poster och B1:D1 är månadsnamn.
XMATCH-formel som är känslig för stora bokstäver
Som redan nämnts är Excel-funktionen XMATCH konstruerad så att den inte tar hänsyn till stor- och småbokstäver. Om du vill tvinga den att ta hänsyn till stor- och småbokstäver i text använder du XMATCH i kombination med EXACT-funktionen:
MATCH(TRUE, EXACT( Lookup_array , Lookup_value ))För att söka i omvänd ordning från sist till först:
MATCH(TRUE, EXACT( Lookup_array , Lookup_value ), 0, -1)Följande exempel visar hur den generiska formeln fungerar. Antag att du har en lista med produkt-ID:n som är skiftlägeskänsliga i B2:B11. Du vill hitta den relativa positionen för artikeln i E1. En skiftlägeskänslig formel i E2 är så här enkel:
=XMATCH(TRUE, EXACT(B2:B11, E1))
Hur denna formel fungerar:
EXACT-funktionen jämför uppslagsvärdet med varje objekt i uppslagsarrayn. Om de jämförda värdena är exakt lika, inklusive teckenfallet, returnerar funktionen TRUE, annars FALSE. Denna array av logiska värden (där TRUE står för exakta överensstämmelser) går till Lookup_array argumentet i XMATCH. Och eftersom uppslagsvärdet är TRUE returnerar XMATCH-funktionen positionen för den första exakt matchningen som hittas eller den sista exakt matchningen, beroende på hur du har konfigurerat search_mode (sökläge) argument.
XMATCH vs. MATCH i Excel
XMATCH utformades som en kraftfullare och mångsidigare ersättare för MATCH, och därför har de två funktionerna mycket gemensamt. Det finns dock väsentliga skillnader.
Olika standardbeteende
MATCH-funktionen är som standard exakt matchning eller nästa minsta objekt ( match_type är satt till 1 eller utelämnas).
XMATCH-funktionen har som standard exakt matchning ( match_mode sätts till 0 eller utelämnas).
Olika beteende för ungefärlig matchning
När den match_mode / match_type är satt till 1:
- MATCH söker efter exakt matchning eller nästa minsta. Kräver att uppslagsarrayn ska vara sorterad i stigande ordning.
- XMATCH söker efter exakt samma eller näst största träff och kräver ingen sortering.
När den match_mode / match_type argumentet sätts till -1:
- MATCH söker efter exakt matchning eller näst största. Kräver att uppslagsraden sorteras i fallande ordning.
- XMATCH söker efter exakt matchning eller nästa minsta. Kräver ingen sortering.
Wildcard-sökning
För att hitta partiella överensstämmelser med XMATCH måste du ange match_mode argument till 2.
Funktionen MATCH har inget särskilt alternativ för wildcardmatchning. I de flesta fall konfigurerar du den för exakt matchning ( match_type till 0), vilket också fungerar för sökningar med jokertecken.
Sökläge
Precis som den nya funktionen XLOOKUP har XMATCH en särskild search_mode (sökläge) argument som gör det möjligt att definiera den Sökriktning. :
- 1 eller utelämnas (standard) - söker först till sist.
- -1 - omvänd sökning från sist till först.
Och välj en algoritm för binär sökning , som är mycket snabb och effektiv på sorterade uppgifter .
- 2 - binär sökning på data sorterade i stigande ordning.
- -2 - binär sökning på data som är sorterade i fallande ordning.
Binär sökning , även kallad Sökning med halvt intervall. eller . logaritmisk sökning är en speciell algoritm som hittar positionen för ett uppslagsvärde i en matris genom att jämföra det med det mittersta elementet i matrisen. En binär sökning är mycket snabbare än en vanlig sökning, men fungerar bara korrekt på sorterade listor. På osorterade data kan den ge felaktiga resultat som vid första anblicken kan se ganska normala ut.
Syntaxen för MATCH innehåller inget argument för sökläge alls.
XMATCH hanterar matriser nativt
Till skillnad från sin föregångare är XMATCH-funktionen utformad för dynamiska Excel och hanterar matriser direkt, utan att du behöver trycka på Ctrl + Shift + Enter . Detta gör det mycket enklare att skapa och redigera formler, särskilt när du använder flera olika funktioner tillsammans. Jämför bara följande lösningar:
- Storleksanpassad formel: XMATCH
- Jämför två kolumner eller listor för att hitta matchningar: XMATCH
Tillgänglighet för XMATCH och MATCH
XMATCH är en ny funktion som endast finns i Excel för Microsoft 365 och Excel 2021.
Funktionen MATCH är tillgänglig i alla versioner av Excel 365 till och med Excel 2007.
Så här använder du XMATCH-funktionen i Excel. Tack för att du läste och hoppas att vi ses på vår blogg nästa vecka!
Arbetsbok för övning för nedladdning
Exempel på Excel XMATCH-formler (.xlsx-fil)