
Generisk formel
=VLOOKUP(A1,CHOOSE((1,2),range2,range1),2,0)
Sammanfattning
För att använda VLOOKUP för att söka upp till vänster kan du använda funktionen VÄLJ för att ordna om uppslagstabellen. I exemplet som visas är formeln i F5:
=VLOOKUP(E5,CHOOSE((1,2),score,rating),2,0)
där poäng (C5: C9) och betyg (B5: B9) heter områden.
Förklaring
En av VLOOKUP-funktionens nyckelbegränsningar är att den bara kan slå värden till höger. Med andra ord måste kolumnen som innehåller uppslagsvärden sitta till vänster om de värden du vill hämta med VLOOKUP. Det finns inget sätt att åsidosätta detta beteende eftersom det är fast kopplat till funktionen. Som ett resultat, med normal konfiguration, är det inget sätt att använda VLOOKUP för att slå upp ett betyg i kolumn B baserat på en poäng i kolumn C.
En lösning är att omstrukturera själva uppslagstabellen och flytta uppslagskolumnen till vänster om uppslagsvärden. Det är tillvägagångssättet i detta exempel, som använder VÄLJ-funktionen omvänd betyg och gör så här:
CHOOSE((1,2),score,rating)
Normalt används VÄLJ med ett enda indexnummer som det första argumentet, och återstående argument är värdena att välja mellan. Men här ger vi välja en arraykonstant för indexnummer som innehåller två nummer: (1,2). I huvudsak frågar vi om att välja både första och andra värden.
Värdena anges som de två namngivna intervallen i exemplet: poäng och betyg. Observera dock att vi tillhandahåller dessa intervall i omvänd ordning. VÄLJ-funktionen väljer båda områdena i den angivna ordningen och returnerar resultatet som en enda matris så här:
(5,"Excellent";4,"Good";3,"Average";2,"Poor";1,"Terrible")
VÄLJ returnerar denna matris direkt till VLOOKUP som argument för tabellmatris. Med andra ord levererar CHOOSE en uppslagstabell så här till VLOOKUP:
Med hjälp av uppslagsvärdet i E5 hittar VLOOKUP en matchning i den nyskapade tabellen och returnerar ett resultat från den andra kolumnen.
Ombeställa med arraykonstanten
I det visade exemplet ordnar vi om uppslagstabellen genom att vända "betyg" och "poäng" inuti den valda funktionen. Vi kan dock istället använda arraykonstanten för att ordna så här:
CHOOSE((2,1),rating,score)
Resultatet är exakt detsamma.
Med INDEX och MATCH
Även om ovanstående exempel fungerar bra är det inte perfekt. För det första förstår de flesta genomsnittliga användare inte hur formeln fungerar. En mer naturlig lösning är INDEX och MATCH. Här är motsvarande formel:
=INDEX(rating,MATCH(E5,score,0))
I själva verket är detta ett bra exempel på hur INDEX och MATCH är mer flexibla än VLOOKUP.