Jämföra listor på två sätt

Det finns flera olika sätt för att jämföra två listor i Excel. Vilket sätt man använder kan vara lite olika, beroende på hur förutsättningarna är för listorna och även vilken typ av jämförelse man vill göra. Det viktigaste att tänka på när man ska jämföra två listor är att förutsättningarna på listorna är samma. Det vill säga att båda listorna innehåller samma typ av data (siffror, text, datum). Sedan ska man vara uppmärksam att mellanslag i celler också påverkar hur Excel tolkar innehållet. Så innan man gör en jämförelse så kanske man behöver städa upp sina listor för att de ska vara helt jämförbara.

I detta exempel (bilden nedan) har vi två listor som ska jämföras. Den första listan (Lista 1) innehåller 9700 rader med en sifferserie. Den andra listan innehåller 200 rader med samma typ av sifferserie. Målet är att se vilka siffor i Lista 2 som finns i den första listan. Båda listorna är sorterade så i början är det hyffsat enkelt att se vilka sifferserier som matcher, men det blir svårare ju längre ner man kommer.

Hämta exempelfilen här.

Vi rekommenderar dessa Excelkurser:
www.infocell.se – lärarledda kvalitetskurser i Excel
www.officekurs.se – oslagbar e-Learning i Excel & Office-paketet

Ett smidigt sätt är att lösa denna jämförelse med en funktion som man enkelt kan kopiera för hela Lista 2. Det finns dessutom flera funktioner som fungerar att använda för denna jämförelse. Här använder två olika funktioner. Först LETARAD [VLOOKUP] och sedan PASSA [MATCH]. Huvudsyftet med jämförelsen fungerar lika bra med båda funktionerna men det finns en skillnad i resultatet som gör att man kan överväga att använda den ena eller den andra.

LETARAD [VLOOKUP]

Man skapar funktionen för Lista 2 och ser om vart och ett av siffrorna finns med i Lista 1. Funktionen i cell D2 blir följande:

=LETARAD(C2;$A$2:$A$9701;1;FALSKT)

=VLOOKUP(C2;$A$2:$A$9701;1;FALSE)

Viktigt att komma ihåg är att låsa ($-tecken) för området i Lista 1 samt att använda kolumnindex 1 för första kolumnen, som också är den enda kolumnen. FALSKT [FALSE] på slutet eftersom vi vill ha exakt matchning, man kan även ange 0 (noll).

Resultat

Resultatet av funktionen LETARAD [VLOOKUP] när man kopierat hela vägen ner för Lista 2.

För varje rad där sifferserien återfinns i båda listorna så visas motsvarande siffra i cellen. Då siffran inte finns i Lista 1 så returneras felkoden #SAKNAS! [#N/A]. Nu kan man enkelt med filtrering visa urval av de siffror som återfinns i båda listorna eller de som endast finns i Lista 2.

PASSA [MATCH]

En annan funktion man kan använda för detta exempel är PASSA [MATCH]. Resultatet för denna funktionen blir snarlik men med en liten twist som klan vara användbar. Formeln i cellen D2 blir följande:

=PASSA(C2;$A$2:$A$9701;0)

=MATCH(C2;$A$2:$A$9701;0)

Viktig här är att låsa området i A-kolumnen för att funktionen ska fungera korrekt när man kopierar neråt för övriga celler. Sista argumentet ska vara 0 (noll) för exakt matchning.

Resultat

Resultatet av funktionen PASSA [MATCH] när man kopierat hela vägen ner för Lista 2.

När det blir en träff, sifferserien finns i båda listorna, så resulterar funktionen en siffra. Siffran motsvarar var träffen finns i A-kolumnens område. Så första siffran 1 talar om att träffen finns i första raden av det sökta området. Vill man få motsvarande matchning efter Excels radnumrering så kan man justera formeln (se längre ner). När det inte blir träff så resulterar även denna funktionen felkoden #SAKNAS! [#N/A].

Denna metod med PASSA [MATCH] för att jämföra listor är verkligen bra om man vill ha reda på var träffen finns eftersom man får en siffra med radnumret i sökområdet. Det går då snabbt att hitta motsvarande matchning även om listorna inte är sorterade.

Justering av formeln för att passa Excels radnummer

Ett tips för att få radnumreringen att stämma överens med Excels numrering är att lägga till en siffra i slutet av formeln. Man adderar helt antalet rader som sökområdet börjar från toppen av arket, rad 1. I detta exempel så började sökområdet på rad 2 (cell A2) vilket innebär att man måste lägga till talet ett i slutet av formeln:

=PASSA(C2;$A$2:$A$9701;0)+1

=MATCH(C2;$A$2:$A$9701;0)+1

Detta förskjuter numreringen så att siffrorna stämmer med Excels radnummer.

 

Du gillar kanske också...

4 svar

  1. Thomas skriver:

    Bra tips, jag har kommit på att om jag formaterar listan som tabell behöver jag inte låsa området i listan med $
    [Tabell] blir dynamisk och kommer ha samma referens även om jag lägger till fler rader 🙂

  2. Jonas Magnusson skriver:

    Hur kan man få de rader i LISTA1 som inte finns med i LISTA2? Behöver man göra en ny kolumn med det omvända uttrycket då eller finns smidigare väg?

Börja prenumerera på Excelbrevet

Ta del av tips & tricks i Excel och Office en gång i månaden helt kostnadsfritt.

Grattis du kommer nu att få Excelbrevet varje månad helt gratis!