VLOOKUP är en Excel-funktion för att ordna data från en tabell vertikalt. Sökningsvärden måste visas i den första kolumnen i tabellen som skickas till VLOOKUP. VLOOKUP stöder ungefärlig och exakt matchning och jokertecken (*?) För partiella matchningar.
Vertikala data | Kolumnnummer | Ser bara rätt ut | Matchande lägen | Exakt matchning Ungefärlig matchning Första matchen | Jokertecken | Tvåvägssökning | Flera kriterier | # N / A-fel | Videor
V är för vertikala
Syftet med VLOOKUP är att få information från en tabell som är organiserad så här:
Genom att använda ordernumret i kolumn B som uppslagsvärde kan VLOOKUP få kund-ID, belopp, namn och tillstånd för alla beställningar. För att till exempel få kundnamnet för order 1004 är formeln:
=VLOOKUP(1004,B5:F9,4,FALSE) // returns "Sue Martin"För horisontella data kan du använda HLOOKUP, INDEX och MATCH eller XLOOKUP.
VLOOKUP är baserat på kolumnnummer
När du använder VLOOKUP, föreställ dig att varje kolumn i tabellen är numrerad, från vänster. För att få ett värde från en viss kolumn, ange lämpligt nummer som ”kolumnindex”. Kolumneindexet för att hämta förnamn nedan är till exempel 2:
Efternamnet och e-postmeddelandet kan hämtas med kolumner 3 och 4:
=VLOOKUP(H3,B4:E13,2,FALSE) // first name=VLOOKUP(H3,B4:E13,3,FALSE) // last name=VLOOKUP(H3,B4:E13,4,FALSE) // email addressVLOOKUP ser bara rätt ut
VLOOKUP kan bara se till höger. De data du vill hämta (resultatvärden) kan visas i vilken kolumn som helst till höger om sökvärdena:
Om du måste slå värdena till vänster, se INDEX och MATCH, eller XLOOKUP.
Exakt och ungefärlig matchning
VLOOKUP har två matchningslägen, exakt och ungefärlig. Namnet på argumentet som styr matchningen är ”range_lookup”. Det här är ett förvirrande namn eftersom det verkar ha något att göra med cellområden som A1: A10. I själva verket hänvisar ordet ”intervall” i det här fallet till ”värdeintervall” – när range_lookup är SANT, kommer VLOOKUP att matcha ett värdeintervall snarare än ett exakt värde. Ett bra exempel på detta är att använda VLOOKUP för att beräkna betyg.
Det är viktigt att förstå att range_lookup som standard är SANT, vilket innebär att VLOOKUP kommer att använda ungefärlig matchning som standard, vilket kan vara farligt. Ange range_lookup till FALSE för att tvinga exakt matchning:
Obs! Du kan också ange noll (0) istället för FALSE för en exakt matchning.
Exakt matchning
I de flesta fall vill du antagligen använda VLOOKUP i exakt matchningsläge. Det är vettigt när du har en unik nyckel att använda som ett uppslagsvärde, till exempel filmtiteln i dessa data:
Formeln i H6 för att hitta Year, baserat på en exakt matchning av filmtitel, är:
=VLOOKUP(H4,B5:E9,2,FALSE) // FALSE = exact matchUngefärlig matchning
Om du vill ha den bästa matchningen, inte nödvändigtvis en exakt matchning, vill du använda ungefärligt läge. Till exempel nedan vill vi slå upp en provision på tabellen G5: H10. Uppslagsvärdena kommer från kolumn C. I det här exemplet måste vi använda VLOOKUP i ungefärligt matchningsläge, för i de flesta fall kommer en exakt matchning aldrig att hittas. VLOOKUP-formeln i D5 är konfigurerad för att utföra en ungefärlig matchning genom att ställa in det sista argumentet till SANT:
=VLOOKUP(C5,$G$5:$H$10,2,TRUE) // TRUE = approximate matchVLOOKUP söker igenom värden i kolumn G efter sökningsvärdet. Om en exakt matchning hittas kommer VLOOKUP att använda den. Om inte, kommer VLOOKUP att ”gå tillbaka” och matcha föregående rad.
Obs: data måste sorteras i stigande ordning efter uppslagsvärde när du använder ungefärligt matchningsläge med VLOOKUP.
Första matchning
I fallet med dubbla värden kommer VLOOKUP att hitta den första matchningen när matchningsläget är exakt. På skärmen nedan är VLOOKUP konfigurerad för att hitta priset för färgen ”Grön”. Det finns tre poster med färgen Grön och VLOOKUP returnerar priset för den första posten, $ 17. Formeln i cell F5 är:
=VLOOKUP(E5,B5:C11,2,FALSE) // returns 17
Matchning av jokertecken
VLOOKUP-funktionen stöder jokertecken, vilket gör det möjligt att utföra en partiell matchning vid ett uppslagsvärde. Du kan till exempel använda VLOOKUP för att hämta värden från en tabell efter att du bara har skrivit in en del av ett sökvärde. För att använda jokertecken med VLOOKUP måste du ange exakt matchningsläge genom att ange FALSE eller 0 för det sista argumentet, range_lookup. Formeln i H7 hämtar förnamnet ”Michael” efter att ha skrivit ”Aya” i cell H4:
=VLOOKUP($H$4&"*",$B$5:$E$104,2,FALSE)
Läs en mer detaljerad förklaring här.
Tvåvägssökning
Inuti VLOOKUP-funktionen, kolumnen indexargument är vanligtvis hårt kodade som ett statiskt nummer.Du kan dock också skapa ett dynamiskt kolumnindex med hjälp av MATCH-funktionen för att hitta den högra kolumnen. Med den här tekniken kan du skapa en dynamisk tvåvägssökning som matchar både rader och kolumner. På skärmen nedan är VLOOKUP konfigurerad för att utföra en sökning baserat på namn och månad. Formeln i H6 är:
=VLOOKUP(H4,B5:E13,MATCH(H5,B4:E4,0),0)
Mer information finns i det här exemplet.
Obs! I allmänhet är INDEX och MATCH ett mer flexibelt sätt att utföra tvåvägssökningar.
Flera kriterier
VLOOKUP-funktionen hanterar inte flera kriterier inbyggt. Du kan dock använda en hjälpkolumn för att sammanfoga flera fält och använda dessa fält som flera kriterier i VLOOKUP. I exemplet nedan är kolumn B en hjälpkolumn som sammanfogar för- och efternamn tillsammans med denna formel:
=C5&D5 // helper columnVLOOKUP är konfigurerad för att göra samma sak för att skapa ett uppslagsvärde. Formeln i H6 är:
=VLOOKUP(H4&H5,B5:E13,4,0)
För detaljer, se detta exempel.
Obs! INDEX och MATCH och XLOOKUP är mer robusta sätt att hantera sökningar baserat på flera kriterier.
VLOOKUP och # N / A-fel
Om du använder VLOOKUP kommer du oundvikligen att stöta på # N / A-felet. # N / A-felet betyder bara ”hittades inte”. På skärmen nedan finns till exempel sökvärdet ”Toy Story 2” inte i uppslagstabellen och alla tre VLOOKUP-formlerna returnerar # N / A:
Ett sätt att ”fånga” NA-felet är att använda IFNA-funktionen så här:
Formeln i H6 är:
=IFNA(VLOOKUP(H4,B5:E9,2,FALSE),"Not found")Meddelandet kan anpassas efter önskemål. För att returnera ingenting (dvs för att visa ett tomt resultat) när VLOOKUP returnerar # N / A kan du använda en tom sträng så här:
=IFNA(VLOOKUP(H4,B5:E9,2,FALSE),"") // no messageFelet # N / A är användbart eftersom det säger att något är fel. I praktiken finns det många anledningar till att du kan se detta fel, inklusive:
- Sökningsvärdet finns inte i tabellen
- Sökningsvärdet är felstavat eller innehåller extra utrymme
- Matchningsläget är exakt, men bör vara ungefärligt
- Tabellintervallet har inte matats in korrekt
- Du kopierar VLOOKUP och tabellreferensen är inte låst
Läs mer: VLOOKUP utan # N / A-fel
Mer om VLOOKUP
- Fler VLOOKUP-exempel
- VLOOKUP-videor
- 23 tips för användning av VLOOKUP
Andra anteckningar
- Range_lookup styr om värdet måste matcha exakt eller inte. Standardvärdet är SANT = tillåt icke-exakt matchning.
- Ställ in range_lookup till FALSE för att kräva en exakt matchning och TRUE för att tillåta en icke-exakt matchning.
- Om range_lookup är TRUE ( standardinställning), kommer en icke-exakt matchning att få VLOOKUP-funktionen att matcha det närmaste värdet i tabellen som fortfarande är mindre än värdet.
- När range_lookup utelämnas tillåter VLOOKUP-funktionen en icke-exakt matchning, men den kommer att använda en exakt matchning om den finns.
- Om range_lookup är TRUE (standardinställningen), se till att sökvärdena i den första raden i tabellen sorteras i stigande ordning. I annat fall kan VLOOKUP returnera ett felaktigt eller oväntat värde.
- Om range_lookup är FALSE (kräver exakt matchning) behöver värden i den första kolumnen i tabellen inte sorteras.