Att leta upp ett värde i en tabell är en av de vanligaste uppgifterna i Excel. Du har ett artikelnummer och vill ha priset. Du har ett namn och vill ha avdelningen. Du har ett belopp och vill veta vilken rabattnivå det hamnar på. Excel har flera funktioner för det här, och de fungerar olika bra beroende på hur din tabell ser ut och vilken Excel-version du har.

Här går vi igenom de tre viktigaste: LETARAD (VLOOKUP), INDEX och PASSA (INDEX/MATCH) och XLETAUPP (XLOOKUP). Du får se samma exempel lösas på alla tre sätten, när du bör välja vilken metod och hur du undviker de vanligaste felen.

Vilken funktion ska du välja?

Om du bara vill ha det korta svaret:

  • Har du Microsoft 365 eller Excel 2021 eller senare? Använd XLETAUPP. Den är enklast att skriva, letar åt alla håll och använder exakt matchning som standard.
  • Ska filen fungera i äldre Excel-versioner? Använd INDEX och PASSA. Kombinationen fungerar i alla versioner och har nästan samma flexibilitet som XLETAUPP.
  • Enkel tabell där sökkolumnen ligger längst till vänster? Då fungerar LETARAD bra, och det är den funktion som flest känner igen.
LETARAD INDEX/PASSA XLETAUPP
Kan leta åt vänster Nej Ja Ja
Tål att kolumner infogas eller tas bort Nej Ja Ja
Exakt matchning som standard Nej Nej Ja
Inbyggd hantering när värdet saknas Nej Nej Ja
Finns i Alla versioner Alla versioner Microsoft 365, Excel 2021 och senare

I exemplen nedan har vi en produkttabell med artikelnummer, produktnamn, pris och lagersaldo. I cell F2 skriver vi in en produkt, och i G2 vill vi få fram priset.

LETARAD (VLOOKUP) – klassikern

LETARAD söker efter ett värde i den första kolumnen i ett område och hämtar värdet från en annan kolumn på samma rad. Syntaxen är:

=LETARAD(sökvärde; tabell; kolumnnummer; FALSKT)

LETARAD i Excel: formeln =LETARAD(F2;B2:C7;2;FALSKT) hämtar priset 1 299,00 för Bokhylla från en produkttabell
LETARAD letar upp ”Bokhylla” i första kolumnen i B2:C7 och hämtar värdet från kolumn 2, alltså priset.

Formeln =LETARAD(F2;B2:C7;2;FALSKT) betyder: leta efter innehållet i F2 i den första kolumnen i B2:C7, och hämta värdet från den andra kolumnen i samma område. Det sista argumentet, FALSKT, betyder exakt matchning.

LETARAD har två begränsningar som är bra att känna till:

  • Den kan bara leta åt höger. Sökkolumnen måste ligga längst till vänster i området. Vill du hitta artikelnumret i kolumn A utifrån produktnamnet i kolumn B går det inte.
  • Kolumnnumret är hårdkodat. Infogar du en kolumn mitt i tabellen pekar 2 plötsligt på fel kolumn, utan att Excel varnar.

Läs mer i artikeln VLOOKUP/LETARAD – leta värden, där vi också går igenom jokertecken i sökningen.

INDEX och PASSA (INDEX/MATCH) – det flexibla paret

INDEX och PASSA är två separata funktioner som tillsammans gör samma sak som LETARAD, men utan dess begränsningar.

  • PASSA letar upp ett värde i en kolumn eller rad och returnerar positionen. =PASSA("Bokhylla";B2:B7;0) ger 3, eftersom Bokhylla är det tredje värdet i området.
  • INDEX hämtar värdet på en viss position. =INDEX(C2:C7;3) ger det tredje värdet i C2:C7.

När du sätter PASSA inuti INDEX får du en uppslagsformel:

INDEX och PASSA i Excel: formeln =INDEX(C2:C7;PASSA(F2;B2:B7;0)) hämtar priset 1 299,00 för Bokhylla
PASSA hittar Bokhylla på position 3 i B2:B7, och INDEX hämtar det tredje värdet i C2:C7.

Eftersom sökområdet (B2:B7) och returområdet (C2:C7) anges var för sig spelar det ingen roll var kolumnerna ligger. Returkolumnen kan ligga till vänster om sökkolumnen, och formeln fortsätter att fungera om du infogar kolumner i tabellen.

Glöm inte nollan sist i PASSA. Utan den gör PASSA en ungefärlig matchning, och då kan du få fel svar utan att märka det.

INDEX och PASSA kan också slå upp i två riktningar samtidigt, med en PASSA för raden och en för kolumnen: =INDEX(B2:E10;PASSA(H2;A2:A10;0);PASSA(H3;B1:E1;0)). Det är praktiskt i tabeller med till exempel produkter på raderna och månader i kolumnerna.


XLETAUPP (XLOOKUP) – den moderna lösningen

XLETAUPP kom till Microsoft 365 och finns även i Excel 2021 och senare. Den ersätter i praktiken både LETARAD och INDEX/PASSA för de flesta uppslag:

=XLETAUPP(sökvärde; sökområde; returområde)

XLETAUPP i Excel: formeln =XLETAUPP(F2;B2:B7;C2:C7) hämtar priset 1 299,00 för Bokhylla
XLETAUPP letar efter F2 i B2:B7 och returnerar värdet på samma rad i C2:C7.

Fördelarna jämfört med de äldre funktionerna:

  • Exakt matchning som standard. Du behöver inte komma ihåg FALSKT eller 0.
  • Letar åt alla håll, eftersom sök- och returområdet anges separat, precis som med INDEX/PASSA.
  • Inbyggd felhantering. Ett fjärde argument anger vad som ska visas om värdet saknas: =XLETAUPP(F2;B2:B7;C2:C7;"Finns inte").
  • Kan söka bakifrån. Med sökläge -1 hittar du den sista förekomsten, till exempel det senaste priset för en produkt.

Haken är kompatibiliteten. Öppnas filen i Excel 2019 eller äldre visar cellerna felet #NAMN?. Delar du filer med andra som kan ha äldre versioner är INDEX/PASSA det säkrare valet.

Exakt eller ungefärlig matchning

Oftast vill du ha exakt matchning: produkten heter Bokhylla, och det är Bokhylla du vill hitta. Men ibland vill du hitta det intervall ett värde hamnar i, till exempel en rabattnivå, en skattetabell eller ett betygsintervall. Då använder du ungefärlig matchning.

Ungefärlig matchning med LETARAD: =LETARAD(D2;A2:B6;2;SANT) ger rabatten 5 % för ordervärdet 7 450,00
Med SANT hittar LETARAD det största värdet som är mindre än eller lika med 7 450, alltså 5 000, och hämtar rabatten 5 %.

Ungefärlig matchning letar upp det största värdet som är mindre än eller lika med sökvärdet. Det kräver att den första kolumnen är sorterad i stigande ordning, annars blir resultatet fel.

Så här anger du ungefärlig matchning i de olika funktionerna:

  • LETARAD: SANT som sista argument. Observera att det också är standard om du utelämnar argumentet, vilket är en vanlig felkälla.
  • PASSA: 1 som sista argument, vilket också är standard.
  • XLETAUPP: -1 som femte argument: =XLETAUPP(D2;A2:A6;B2:B6;;-1). Här behöver tabellen inte vara sorterad.

Vanliga fel och hur du löser dem

Får du felet #SAKNAS! har Excel inte hittat sökvärdet. Ibland finns värdet verkligen inte, men ofta beror det på något av följande:

  • Tal som är lagrade som text. Artikelnumret 1001 som tal och ”1001” som text är olika värden för Excel. Text hamnar som standard till vänster i cellen och tal till höger, så det syns ofta direkt. Gör om texten till tal, eller se till att båda är text.
  • Extra mellanslag. ”Bokhylla ” med ett mellanslag på slutet matchar inte ”Bokhylla”. Rensa bort mellanslagen med RENSA (TRIM), som vi beskriver i Effektiv texthantering i Excel.
  • Områden som flyttas när du kopierar formeln. Kopierar du formeln nedåt flyttas även sökområdet, så att de nedersta raderna i tabellen hamnar utanför. Lås områdena med dollartecken, till exempel $B$2:$B$7. Tryck F4 när markören står i referensen för att lägga till dem.
  • Ungefärlig matchning av misstag. Har du glömt FALSKT i LETARAD eller 0 i PASSA får du kanske inget fel alls, utan ett värde från fel rad. Det är svårare att upptäcka än ett #SAKNAS!.

Snyggare resultat med OMFEL och OMSAKNAS

Ibland är det helt väntat att ett värde saknas, och då vill du visa något annat än #SAKNAS!. Med OMFEL (IFERROR) lindar du in uppslaget och anger vad som ska visas vid fel:

=OMFEL(INDEX(C2:C7;PASSA(F2;B2:B7;0));"Finns inte")

OMFEL fångar alla typer av fel, också sådana du kanske vill upptäcka, som en felskriven referens. Vill du bara fånga fallet att värdet inte hittas är OMSAKNAS (IFNA) mer exakt:

=OMSAKNAS(LETARAD(F2;B2:C7;2;FALSKT);"Finns inte")

Med XLETAUPP behövs ingen av dem, eftersom det fjärde argumentet gör samma jobb. Mer om felhantering hittar du i IFERROR/OMFEL för felhantering.

Fler sätt att leta upp värden

  • LETAKOLUMN (HLOOKUP) fungerar som LETARAD men letar i den översta raden i stället för i den första kolumnen. XLETAUPP och INDEX/PASSA klarar både rader och kolumner, så LETAKOLUMN behövs sällan.
  • FILTRERA (FILTER) i Microsoft 365 returnerar alla rader som matchar, inte bara den första. Det passar när du vill se alla order för en viss kund.

Sammanfattning

Alla tre metoderna löser grundproblemet att hämta ett värde ur en tabell. LETARAD är enkel men stel, INDEX/PASSA är flexibel och fungerar överallt, och XLETAUPP är det moderna förstahandsvalet om alla som använder filen har en ny Excel-version. Oavsett vilken du väljer: kontrollera att du använder exakt matchning när det är det du vill ha, och lås dina områden med dollartecken innan du kopierar formeln.