
Generisk formel
=VLOOKUP(val&"",table,col,0)
Sammanfattning
För att använda VLOOKUP-funktionen för att hämta information från en tabell där nyckelvärdena är siffror lagrade som text kan du använda en formel som sammanfogar en tom sträng ("") till det numeriska uppslagsvärdet och tvingar den till text. I exemplet som visas är formeln i H3:
=VLOOKUP(id&"",planets,2,0) // returns "Earth"
där id (H2) och planeter (B3: B11) heter områden.
Obs! Exemplet är en lösning på problemet med felaktiga siffror och text, vilket orsakar ett # N / A-fel. Om det inte finns någon överensstämmelse är lösningen inte nödvändig och du kan använda en normal VLOOKUP-formel.
Förklaring
Ett vanligt VLOOKUP-fel är en obalans mellan siffror och text. Oftast innehåller uppslagskolumnen i tabellen numeriska värden som ser ut som siffror men som faktiskt är nummer lagrade som text. När ett äkta nummer skickas till VLOOKUP som det första argumentet returnerar formeln ett # N / A-fel, även om det verkar finnas en matchning. Skärmen nedan visar ett exempel på detta problem:
Siffrorna i kolumn B är faktiskt text, så det numeriska uppslagsvärdet 3 misslyckas, även om det verkar som om VLOOKUP ska matcha B5 och returnera "Earth". Du kan ange ett nummer som ett textvärde genom att föregå numret med ett enda citat (').
Den bästa lösningen är att se till att uppslagsvärdena i tabellen verkligen är siffror. Men om du inte har kontroll över tabellen kan du ändra VLOOKUP-formeln för att tvinga uppslagsvärdet för att matcha typen i tabellen. I det visade exemplet tvingar vi det numeriska uppslagsvärdet till text genom att sammanfoga en tom sträng:
=VLOOKUP(id,planets,2,0) // original =VLOOKUP(id&"",planets,2,0) // revised
Och den reviderade formeln tar hand om felet:
Du kan också göra samma sak med en längre formel som använder TEXT-funktionen för att konvertera numret till text:
=VLOOKUP(TEXT(id,"@"),planets,2,0)
Både siffror och text
Om du inte kan vara säker på när du har siffror och när du har text kan du tillgodose båda alternativen genom att slå in VLOOKUP i IFERROR-funktionen och använda en formel som hanterar båda fallen:
=IFERROR(VLOOKUP(id,planets,3,0),VLOOKUP(id&"",planets,3,0))
Här försöker vi först en normal VLOOKUP-formel som antar att både uppslagsvärde och den första kolumnen i tabellerna är siffror. Om det ger ett fel försöker vi igen med den reviderade formeln. Om den formeln också misslyckas returnerar VLOOKUP ett # N / A-fel som alltid.