Innehållsförteckning
Den här handledningen förklarar hur man använder MATCH-funktionen i Excel med exempel på formler och visar också hur man förbättrar sina uppslagsformler genom att skapa dynamiska formler med VLOOKUP och MATCH.
I Microsoft Excel finns det många olika uppslags-/referensfunktioner som kan hjälpa dig att hitta ett visst värde i ett antal celler, och MATCH är en av dem. I princip identifierar den en relativ position för ett objekt i ett antal celler. MATCH-funktionen kan dock göra mycket mer än vad den är.
Excel MATCH-funktionen - syntax och användningsområden
Funktionen MATCH i Excel söker efter ett angivet värde i ett antal celler och returnerar den relativa positionen för det värdet.
Syntaxen för funktionen MATCH är följande:
MATCH(lookup_value, lookup_array, [match_type])Lookup_value (obligatoriskt) - det värde som du vill hitta. Det kan vara ett numeriskt, textmässigt eller logiskt värde samt en cellreferens.
Lookup_array (obligatoriskt) - det intervall av celler som ska sökas i.
Match_typ (valfritt) - definierar matchningstypen. Det kan vara ett av följande värden: 1, 0, -1. Argumentet match_type som är satt till 0 returnerar endast den exakta matchningen, medan de andra två typerna tillåter ungefärlig matchning.
- 1 eller utelämnas (standard) - hittar den största värde i uppslagsfältet som är mindre än eller lika med uppslagsvärdet. Kräver att uppslagsfältet sorteras i stigande ordning, från minsta till största eller från A till Z.
- 0 - hitta det första värdet i matrisen som är exakt lika. till uppslagsvärdet. Ingen sortering krävs.
- -1 - hitta den minsta värde i matrisen som är större än eller lika med uppslagsvärdet. Uppslagsmatrisen ska sorteras i fallande ordning, från störst till minst eller från Z till A.
För att bättre förstå MATCH-funktionen kan vi göra en enkel formel baserad på dessa data: elevernas namn i kolumn A och deras provresultat i kolumn B, sorterade från störst till minst. För att ta reda på var en viss elev (t.ex, Laura ) bland annat använder denna enkla formel:
=MATCH("Laura", A2:A8, 0)
Du kan också placera uppslagsvärdet i en cell (E1 i det här exemplet) och hänvisa till den cellen i din Excel Match-formel:
=MATCH(E1, A2:A8, 0)
Som du ser i skärmdumpen ovan är elevernas namn inlagda i en godtycklig ordning, och därför ställer vi in match_type argumentet till 0 (exakt matchning), eftersom endast denna typ av matchning inte kräver att värdena sorteras i uppslagsarrayn. Tekniskt sett returnerar formeln Match den relativa positionen för Laura i intervallet. Men eftersom poängen är sorterade från störst till minst, säger den också att Laura har det femte bästa poängen bland alla elever.
Tips: I Excel 365 och Excel 2021 kan du använda funktionen XMATCH, som är en modern och mer kraftfull efterföljare till MATCH.
4 saker du bör veta om MATCH-funktionen
Som du just har sett är det enkelt att använda MATCH i Excel, men som med nästan alla andra funktioner finns det några särskilda egenskaper som du bör känna till:
- Funktionen MATCH returnerar den Relativ position. av uppslagsvärdet i matrisen, inte själva värdet.
- MATCH är Skiftlägeskänslig vilket innebär att den inte skiljer mellan små och stora bokstäver när den hanterar textvärden.
- Om uppslagsarrayn innehåller flera förekomster av uppslagsvärdet returneras positionen för det första värdet.
- Om uppslagsvärdet inte hittas i uppslagsmatrisen returneras felet #N/A.
Hur du använder MATCH i Excel - exempel på formler
Nu när du känner till de grundläggande användningsområdena för Excel-funktionen MATCH ska vi diskutera några fler formelexempel som går längre än de grundläggande.
Partiell matchning med jokertecken
Liksom många andra funktioner förstår MATCH följande jokertecken:
- Frågetecken (?) - ersätter alla enskilda tecken.
- Asterisk (*) - ersätter vilken sekvens som helst av tecken.
Observera: Jokertecken kan endast användas i Matchformler med match_type är satt till 0.
En Match-formel med jokertecken är användbar i situationer när du inte vill matcha hela textsträngen, utan bara vissa tecken eller delar av strängen. För att illustrera detta, se följande exempel.
Anta att du har en lista över regionala återförsäljare och deras försäljningssiffror för den senaste månaden. Du vill hitta en viss återförsäljares relativa position i listan (sorterad efter försäljningssiffrorna i fallande ordning), men du kommer inte ihåg hans namn exakt, även om du kommer ihåg några av de första bokstäverna.
Om vi antar att återförsäljarnas namn ligger i intervallet A2:A11 och du söker efter det namn som börjar med "car", så fungerar formeln på följande sätt:
=MATCH("bil*", A2:A11,0)
För att göra vår Match-formel mer mångsidig kan du skriva in uppslagsvärdet i en cell (E1 i det här exemplet) och sedan sammanfoga cellen med jokertecknet, så här:
=MATCH(E1& "*", A2:A11,0)
Som visas i skärmdumpen nedan ger formeln 2, vilket är positionen för "Carter":
Om du vill ersätta bara ett tecken i uppslagsvärdet använder du jokertecknet "?", så här:
=MATCH("ba?er", A2:A11,0)
Formeln ovan matchar namnet " Baker " och kör om dess relativa position, som är 5.
Formeln MATCH som är känslig för stora bokstäver
Som vi nämnde i början av den här handledningen skiljer MATCH-funktionen inte mellan stora och små bokstäver. Om du vill skapa en matchformel som tar hänsyn till stora och små bokstäver använder du MATCH i kombination med EXACT-funktionen som jämför celler exakt, inklusive teckenbokstäver.
Här är den generiska formeln för att matcha data med hänsyn till storleken på skiftläget:
MATCH(TRUE, EXACT( uppslagsrad , Uppslagsvärde ), 0)Formeln fungerar enligt följande logik:
- EXACT-funktionen jämför uppslagsvärdet med varje element i uppslagsmatrisen. Om de jämförda cellerna är exakt lika returnerar funktionen TRUE, annars FALSE.
- Sedan jämför funktionen MATCH TRUE (vilket är dess Lookup_value ) med varje värde i matrisen som returneras av EXACT och returnerar positionen för den första matchningen.
Tänk på att det är en arrayformel som kräver att du trycker på Ctrl + Shift + Enter för att slutföra den korrekt.
Om du antar att ditt uppslagsvärde finns i cell E1 och att uppslagsmatrisen är A2:A9, är formeln följande:
=MATCH(TRUE, EXACT(A2:A9,E1),0)
Följande skärmdump visar formeln för matchning som tar hänsyn till stor- och små bokstäver i Excel:
Jämför 2 kolumner för att hitta överensstämmelser och skillnader (ISNA MATCH).
Att kontrollera om två listor stämmer överens och skiljer sig åt är en av de vanligaste uppgifterna i Excel, och det kan göras på flera olika sätt. En ISNA/MATCH-formel är en av dem:
IF(ISNA(MATCH( Första värdet i lista 1 , Lista2 , 0)), "Inte i lista 1", "")För varje värde i lista 2 som inte finns i lista 1 ger formeln " Inte i förteckning 1 ". Och så här gör vi:
- Funktionen MATCH söker efter ett värde från lista 1 i lista 2. Om ett värde hittas returneras dess relativa position, annars #N/A error.
- ISNA-funktionen i Excel gör bara en sak - den kontrollerar om det finns #N/A-fel (vilket betyder "inte tillgängligt"). Om ett givet värde är ett #N/A-fel returnerar funktionen TRUE, annars FALSE. I vårt fall betyder TRUE att ett värde från lista 1 inte finns i lista 2 (dvs. ett #N/A-fel returneras av MATCH).
- Eftersom det kan vara mycket förvirrande för dina användare att se TRUE för värden som inte finns i lista 1, så lindar du IF-funktionen runt ISNA för att visa " Inte i förteckning 1 " i stället, eller vilken text du vill.
Om du till exempel vill jämföra värden i kolumn B med värden i kolumn A får formeln följande form (där B2 är den översta cellen):
=IF(ISNA(MATCH(B2,A:A,0)), "Inte i lista 1", "")
Som du minns är MATCH-funktionen i Excel i sig själv skiftlägeskänslig. För att få den att skilja mellan teckenbokstäverna bäddar du in EXACT-funktionen i Lookup_array argument, och kom ihåg att trycka på Ctrl + Shift + Enter för att slutföra detta. formel för matris :
=IF(ISNA(MATCH(TRUE, EXACT(A:A, B2),0)), "Inte i lista 1", "")
Följande skärmdump visar båda formlerna i praktiken:
Om du vill lära dig andra sätt att jämföra två listor i Excel kan du läsa följande handledning: Hur man jämför två kolumner i Excel.
Excel VLOOKUP och MATCH
Det här exemplet förutsätter att du redan har grundläggande kunskaper om Excel VLOOKUP-funktionen. Om du har det är det troligt att du har stött på dess många begränsningar (en detaljerad översikt finns i Varför Excel VLOOKUP inte fungerar) och att du letar efter ett mer robust alternativ.
En av de mest irriterande nackdelarna med VLOOKUP är att det slutar fungera efter att du har lagt in eller tagit bort en kolumn i en uppslagstabell. Detta beror på att VLOOKUP tar fram ett matchande värde baserat på numret på den returkolumn som du anger (indexnummer). Eftersom indexnummer är "hårt kodad" i formeln, kan Excel inte justera den när en ny kolumn läggs till eller tas bort från tabellen.
Excel-funktionen MATCH behandlar en Relativ position. av ett uppslagsvärde, vilket gör att det passar perfekt för col_index_num I stället för att ange returkolumnen som ett statiskt nummer använder du med andra ord MATCH för att få fram den aktuella positionen för den kolumnen.
För att göra det lättare att förstå använder vi tabellen med studenternas provresultat igen (liknande den vi använde i början av den här handledningen), men den här gången hämtar vi det verkliga resultatet och inte dess relativa position.
Om vi antar att uppslagsvärdet finns i cell F1, att tabellmatrisen är $A$1:$C$2 (det är bra att låsa den med absoluta cellreferenser om du planerar att kopiera formeln till andra celler), så ser formeln ut på följande sätt:
=VLOOKUP(F1, $A$1:$C$8, 3, FALSE)
Det tredje argumentet ( col_index_num ) är satt till 3 eftersom Matematikresultat som vi vill ta fram är den tredje kolumnen i tabellen. Som du kan se i skärmbilden nedan fungerar den här vanliga Vlookup-formeln bra:
Men bara tills du infogar eller tar bort en eller flera kolumner:
Så varför felet #REF!? col_index_num till 3 säger åt Excel att hämta ett värde från den tredje kolumnen, medan det nu bara finns två kolumner i tabellmatrisen.
För att förhindra att sådana saker händer kan du göra din Vlookup-formel mer dynamisk genom att inkludera följande funktion Match:
MATCH(E2,A1:C1,0)
Var:
- E2 är uppslagsvärdet, som är exakt lika. till namnet på returkolumnen, dvs. den kolumn från vilken du vill hämta ett värde ( Matematikresultat i det här exemplet).
- A1:C1 är den uppslagsarray som innehåller tabellrubrikerna.
Nu inkluderar du den här Match-funktionen i col_index_num argumentet i din Vlookup-formel, till exempel så här:
=VLOOKUP(F1,$A$1:$C$8, MATCH(E2,$A$1:$C$1, 0), FALSE)
Och se till att det fungerar perfekt oavsett hur många kolumner du lägger till eller tar bort:
I skärmbilden ovan har jag låst alla cellreferenser för att formeln ska fungera korrekt även om mina användare flyttar den till en annan plats i kalkylbladet. Som du kan se i skärmbilden nedan fungerar formeln utmärkt efter att du har tagit bort en kolumn; dessutom är Excel tillräckligt smart för att justera absoluta referenser på rätt sätt i det här fallet:
Excel HLOOKUP och MATCH
På samma sätt kan du använda Excel-funktionen MATCH för att förbättra dina HLOOKUP-formler. Den allmänna principen är i stort sett densamma som för Vlookup: du använder funktionen Match för att få fram den relativa positionen för returkolumnen och anger det numret i row_index_num argumentet i din Hlookup-formel.
Om vi antar att uppslagsvärdet finns i cell B5, att tabellmatrisen är B1:H3, att namnet på returraden (uppslagsvärdet för MATCH) finns i cell A6 och att radrubrikerna är A1:A3, är den fullständiga formeln som följer:
=HLOOKUP(B5, B1:H3, MATCH(A6, A1:A3, 0), FALSE)
Som du just har sett är kombinationen av Hlookup/Vlookup & Match verkligen en förbättring jämfört med vanliga Hlookup- och Vlookup-formler. MATCH-funktionen eliminerar dock inte alla deras begränsningar. I synnerhet kan en Vlookup Match-formel fortfarande inte titta till vänster, och Hlookup Match misslyckas med att söka i någon annan rad än den översta.
För att övervinna ovanstående (och några andra) begränsningar kan du överväga att använda en kombination av INDEX MATCH, som ger ett riktigt kraftfullt och mångsidigt sätt att göra uppslag i Excel, överlägset Vlookup och Hlookup i många avseenden. Detaljerad vägledning och formelexempel finns i INDEX & MATCH in Excel - a better alternative to VLOOKUP.
Så här använder du MATCH-formlerna i Excel. Förhoppningsvis kommer exemplen i den här handledningen att vara till hjälp i ditt arbete. 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 MATCH-formler (.xlsx-fil)