Innehållsförteckning
I handledningen visas hur du använder VLOOKUP-formeln i Excel för att jämföra två kolumner för att få fram gemensamma värden (matchningar) eller hitta saknade data (skillnader).
När du har uppgifter i två olika listor kan du ofta behöva jämföra dem för att se vilken information som saknas i en av listorna eller vilka uppgifter som finns i båda listorna. Jämförelse kan göras på många olika sätt - vilken metod du ska använda beror på vad du vill ha ut av den.
Hur man jämför två kolumner i Excel med VLOOKUP
När du har två kolumner med data och vill ta reda på vilka datapunkter från den ena listan som finns i den andra listan kan du använda VLOOKUP-funktionen för att jämföra listorna efter gemensamma värden.
Så här gör du för att bygga en VLOOKUP-formel i sin grundform:
- För Lookup_value (första argumentet), används den översta cellen i lista 1.
- För tabell_array (andra argumentet), ange hela listan 2.
- För col_index_num (tredje argumentet), använd 1 eftersom det bara finns en kolumn i matrisen.
- För range_lookup (fjärde argumentet), ange FALSE - exakt matchning.
Anta att du har namnen på deltagarna i kolumn A (lista 1) och namnen på dem som gått igenom kvalomgångarna i kolumn B (lista 2). Du vill jämföra dessa två listor för att avgöra vilka deltagare från grupp A som tog sig vidare till huvudtävlingen. För att göra detta använder du följande formel.
=VLOOKUP(A2, $C$2:$C$9, 1, FALSE)
Formeln placeras i cell E2 och sedan drar du den nedåt genom lika många celler som det finns objekt i Lista 1.
Observera att tabell_array är låst med absoluta referenser ($C$2:$C$9) så att den förblir konstant när du kopierar formeln till cellerna nedan.
Som du kan se visas namnen på de kvalificerade idrottsutövarna i kolumn E. För de övriga deltagarna visas ett #N/A-fel som anger att deras namn inte finns i lista 2.
Förklädnad #N/A fel
VLOOKUP-formeln som diskuteras ovan uppfyller perfekt sitt huvudsyfte - den returnerar gemensamma värden och identifierar saknade datapunkter. Den ger dock en massa #N/A-fel, vilket kan förvirra oerfarna användare och få dem att tro att något är fel med formeln.
För att ersätta fel med tomma celler Om du vill använda VLOOKUP i kombination med IFNA- eller IFERROR-funktionen på det här sättet, kan du använda VLOOKUP på det här sättet:
=IFNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE), "")
Vår förbättrade formel returnerar en tom sträng ("") i stället för #N/A. Du kan också returnera din anpassad text t.ex. "Inte i förteckning 2", "Inte närvarande" eller "Inte tillgänglig":
=IFNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE), "Inte i lista 2")
Detta är den grundläggande VLOOKUP-formeln för att jämföra två kolumner i Excel. Beroende på din specifika uppgift kan den modifieras på det sätt som visas i ytterligare exempel.
Jämför två kolumner i olika Excel-ark med hjälp av VLOOKUP
I verkligheten finns de kolumner som du vill jämföra inte alltid på samma ark. I ett litet dataset kan du försöka upptäcka skillnaderna manuellt genom att visa två ark sida vid sida.
För att söka i ett annat arbetsblad eller en annan arbetsbok med formler måste du använda en extern referens. Det bästa sättet är att börja skriva formeln i huvudbladet, sedan byta till det andra arbetsbladet och välja listan med musen - en lämplig intervallreferens läggs automatiskt till formeln.
Om vi antar att lista 1 står i kolumn A på Blad 1 och förteckning 2 finns i kolumn A på Blad2 kan du jämföra två kolumner och hitta överensstämmelser med den här formeln:
=IFNA(VLOOKUP(A2, Sheet2!$A$2:$A$9, 1, FALSE), "")
För mer information, se:
- VLOOKUP från ett annat ark
- VLOOKUP från en annan arbetsbok
Jämför två kolumner och återge gemensamma värden (matchningar)
I de tidigare exemplen diskuterade vi en VLOOKUP-formel i dess enklaste form:
=IFNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE), "")
Resultatet av formeln är en lista med värden som finns i båda kolumnerna och tomma celler i stället för de värden som inte finns i den andra kolumnen.
Om du vill få en lista med vanliga värden utan luckor lägger du bara till auto-filter i den resulterande kolumnen och filtrerar bort blanksteg.
I Excel för Microsoft 365 och Excel 2021 som stöder dynamiska matriser kan du använda funktionen FILTER för att sålla bort tomma blanksteg dynamiskt. Använd formeln IFNA VLOOKUP som kriterium för FILTER:
=FILTER(A2:A14, IFNA(VLOOKUP(A2:A14, C2:C9, 1, FALSE), "")""")
Observera att vi i detta fall levererar hela lista 1 (A2:A14) till Lookup_value Funktionen jämför varje uppslagsvärde med lista 2 (C2:C9) och returnerar en matris med matchningar och #N/A-fel som representerar saknade värden. IFNA-funktionen ersätter felen med tomma strängar och skickar resultaten till FILTER-funktionen, som filtrerar bort tomrum ("") och ger ut en matris med matchningar som slutresultat.
Alternativt kan du använda ISNA-funktionen för att kontrollera resultatet av VLOOKUP och filtrera de objekt som utvärderas till FALSE, dvs. andra värden än #N/A-fel:
=FILTER(A2:A14, ISNA(VLOOKUP(A2:A14, C2:C9, 1, FALSE))=FALSE)
Samma resultat kan uppnås med funktionen XLOOKUP, vilket gör formeln ännu enklare. Eftersom XLOOKUP kan hantera #N/A-fel internt (valfritt if_not_found argumentet), kan vi klara oss utan IFNA- eller ISNA-omslaget:
=FILTER(A2:A14, XLOOKUP(A2:A14, C2:C9, C2:C9, C2:C9,"")"")
Jämför två kolumner och hitta saknade värden (skillnader).
Om du vill jämföra två kolumner i Excel för att hitta skillnader kan du gå tillväga på följande sätt:
- Skriv kärnformeln för att söka efter det första värdet från lista 1 (A2) i lista 2 ($C$2:$C$9):
VLOOKUP(A2, $C$2:$C$9, 1, FALSE)
- Nästar ovanstående formel i ISNA-funktionen för att kontrollera VLOOKUP:s utdata för #N/A-fel. I händelse av ett fel ger ISNA TRUE, annars FALSE:
ISNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE))
- Använd ISNA VLOOKUP-formeln för det logiska testet av IF-funktionen. Om testet visar TRUE (#N/A-fel), återge ett värde från lista 1 i samma rad. Om testet visar FALSE (en matchning i lista 2 har hittats), återge en tom sträng.
Den fullständiga formeln har följande form:
=IF(ISNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE)), A2, "")
För att bli av med de tomma uppgifterna tillämpar du Excels filter som visas i exemplet ovan.
I Excel 365 och Excel 2021 kan du filtrera resultatlistan dynamiskt, genom att placera ISNA VLOOKUP-formeln i . argumentet för FILTER-funktionen:
=FILTER(A2:A14, ISNA(VLOOKUP(A2:A14, C2:C9, 1, FALSE)))
Ett annat sätt är att använda XLOOKUP som kriterium - funktionen returnerar tomma strängar ("") för saknade datapunkter, och du filtrerar de värden i lista 1 för vilka XLOOKUP returnerade tomma strängar (=""):
=FILTER(A2:A14, XLOOKUP(A2:A14, C2:C9, C2:C9, C2:C9,"")="")
VLOOKUP-formeln för att identifiera överensstämmelser och skillnader mellan två kolumner.
Om du vill lägga till textetiketter i den första listan som anger vilka värden som finns tillgängliga i den andra listan och vilka som inte finns tillgängliga i den andra listan använder du formeln VLOOKUP tillsammans med funktionerna IF och ISNA/ISERROR.
För att till exempel identifiera namn som finns i både kolumnerna A och D och namn som endast finns i kolumn A är formeln följande:
=IF(ISNA(VLOOKUP(A2, $D$2:$D$9, 1, FALSE)), "Inte kvalificerad", "Kvalificerad")
Här fångar ISNA-funktionen upp de #N/A-fel som genereras av VLOOKUP och skickar detta mellanresultat till IF-funktionen för att den ska återge den angivna texten för fel och en annan text för lyckade sökningar.
I det här exemplet har vi använt etiketter som "Not qualified"/"Qualified", vilket är lämpligt för vårt datamaterial. Du kan ersätta dem med "Not in List 2"/"In List 2", "Not available"/"Available" eller andra etiketter som du anser lämpliga.
Den här formeln bör infogas i en kolumn intill Lista 1 och kopieras genom så många celler som det finns objekt i listan.
Ytterligare ett sätt att identifiera överensstämmelser och skillnader i två kolumner är att använda funktionen MATCH:
=IF(ISNA(MATCH(A2, $D$2:$D$9, 0)), "Inte i lista 2", "I lista 2")
Jämför 2 kolumner och återge ett värde från den tredje kolumnen
När du arbetar med tabeller som innehåller relaterade data kan du ibland behöva jämföra två kolumner i två olika tabeller och returnera ett matchande värde från en annan kolumn. Det är faktiskt den primära användningen av VLOOKUP-funktionen, det syfte som den är utformad för.
Om du till exempel vill jämföra namnen i kolumnerna A och D i de två tabellerna nedan och återge en tid från kolumn E är formeln följande:
=VLOOKUP(A3, $D$3:$E$10, 2, FALSE)
För att dölja #N/A-fel, använd den beprövade lösningen - IFNA-funktionen:
=IFNA(VLOOKUP(A3, $D$3:$E$10, 2, FALSE), "")
Istället för blanksteg kan du returnera vilken text som helst för saknade datapunkter - skriv bara in den i det sista argumentet. Till exempel:
=IFNA(VLOOKUP(A3, $D$3:$E$10, 2, FALSE), "Ej tillgänglig")
Förutom VLOOKUP kan uppgiften utföras med några andra uppslagsfunktioner.
Personligen skulle jag använda en mer flexibel INDEX MATCH-formel:
=IFNA(INDEX($E$3:$E$10, MATCH(A3, $D$3:$D$10, 0)), "")
Eller använd den moderna efterföljaren till VLOOKUP - funktionen XLOOKUP, som finns i Excel 365 och Excel 2021:
=XLOOKUP(A3, $D$3:$D$10, $E$3:$E$10, "")
För att få fram namnen på de kvalificerade deltagarna från grupp A och deras resultat filtrerar du helt enkelt bort de tomma cellerna i kolumn B:
=FILTER(A3:B15, B3:B15"")
Jämförelseverktyg
Om du ofta jämför filer eller data i Excel kan de smarta verktygen i vår Ultimate Suite spara mycket tid!
Jämför tabeller - ett snabbt sätt att hitta dubbletter (matchningar) och unika värden (skillnader) i två datamängder, t.ex. kolumner, listor eller tabeller.
Jämför två blad - hitta och markera skillnader mellan två arbetsblad.
Jämför flera ark - hitta och markera skillnader i flera ark samtidigt.
Arbetsbok för övning för nedladdning
VLOOKUP i Excel för att jämföra kolumner - exempel (.xlsx-fil)