Hur man använder Excel VLOOKUP-funktionen

Sammanfattning

VLOOKUP är en Excel-funktion för att slå upp data i en tabell organiserad vertikalt. VLOOKUP stöder ungefärlig och exakt matchning och jokertecken (*?) För partiella matchningar. Sökningsvärden måste visas i den första kolumnen i tabellen som skickas till VLOOKUP.

Ändamål

Leta upp ett värde i en tabell genom att matcha den första kolumnen

Returvärde

Det matchade värdet från en tabell.

Syntax

= VLOOKUP (värde, tabell, kol_index, (intervall_sökning))

Argument

  • värde - Det värde du ska leta efter i den första kolumnen i en tabell.
  • tabell - Tabellen från vilken ett värde ska hämtas.
  • col_index - Kolumnen i tabellen som ett värde kan hämtas från.
  • range_lookup - (valfritt) TRUE = ungefärlig matchning (standard). FALSE = exakt matchning.

Version

Excel 2003

Användningsanmärkningar

VLOOKUP är en Excel-funktion för att få data från en tabell organiserad vertikalt. Sökvä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 | videoklipp

V är för vertikal

Syftet med VLOOKUP är att få information från en tabell som är organiserad så här:

Med hjälp av ordernumret i kolumn B som ett uppslagsvärde kan VLOOKUP få kund-ID, belopp, namn och stat 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 horisontell 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". Till exempel är kolumnindexet för att hämta förnamn nedan 2:

Efternamnet och e-postmeddelandet kan hämtas med kolumnerna 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 address

VLOOKUP 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 uppslagsvärdena:

Om du behöver leta upp värden till vänster, se INDEX och MATCH eller XLOOKUP.

Exakt och ungefärlig matchning

VLOOKUP har två matchande lä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 detta fall till "intervall av värden" - när range_lookup är SANT, kommer VLOOKUP att matcha ett intervall med värden 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 använder ungefärlig matchning som standard, vilket kan vara farligt. Ställ in range_lookup till FALSE för att tvinga exakt matchning:

=VLOOKUP(value, table, col_index) // approximate match (default) =VLOOKUP(value, table, col_index, TRUE) // approximate match =VLOOKUP(value, table, col_index, FALSE) // exact match

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 förmodligen 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 denna information:

Formeln i H6 för att hitta Year , baserat på en exakt matchning av filmtitel, är:

=VLOOKUP(H4,B5:E9,2,FALSE) // FALSE = exact match

Ungefärlig matchning

In cases when you want the best match , not necessarily an exact match , you'll want to use approximate mode. For example, below we want to look up a commission rate in the table G5:H10. The lookup values come from column C. In this example, we need to use VLOOKUP in approximate match mode, because in most cases an exact match will never be found. The VLOOKUP formula in D5 is configured to perform an approximate match by setting the last argument to TRUE:

=VLOOKUP(C5,$G$5:$H$10,2,TRUE) // TRUE = approximate match

VLOOKUP will scan values in column G for the lookup value. If an exact match is found, VLOOKUP will use it. If not, VLOOKUP will "step back" and match the previous row.

Note: data must be sorted in ascending order by lookup value when you use approximate match mode with VLOOKUP.

First match

In the case of duplicate values, VLOOKUP will find the first match when the match mode is exact. In screen below, VLOOKUP is configured to find the price for the color "Green". There are three entries with the color Green, and VLOOKUP returns the price for the first entry, $17. The formula in cell F5 is:

=VLOOKUP(E5,B5:C11,2,FALSE) // returns 17

Wildcard match

The VLOOKUP function supports wildcards, which makes it possible to perform a partial match on a lookup value. For instance, you can use VLOOKUP to retrieve values from a table after typing in only part of a lookup value. To use wildcards with VLOOKUP, you must specify exact match mode by providing FALSE or 0 for the last argument, range_lookup . The formula in H7 retrieves the first name, "Michael", after typing "Aya" into cell H4:

=VLOOKUP($H$4&"*",$B$5:$E$104,2,FALSE)

Read a more detailed explanation here.

Two-way lookup

Inside the VLOOKUP function, the column index argument is normally hard-coded as a static number. However, you can also create a dynamic column index by using the MATCH function to locate the right column. This technique allows you to create a dynamic two-way lookup, matching on both rows and columns. In the screen below, VLOOKUP is configured to perform a lookup based on Name and Month. The formula in H6 is:

=VLOOKUP(H4,B5:E13,MATCH(H5,B4:E4,0),0)

For more details, see this example.

Note: In general, INDEX and MATCH is a more flexible way to perform two-way lookups.

Multiple criteria

The VLOOKUP function does not handle multiple criteria natively. However, you can use a helper column to join multiple fields together, and use these fields like multiple criteria inside VLOOKUP. In the example below, Column B is a helper column that concatenates first and last names together with this formula:

=C5&D5 // helper column

VLOOKUP is configured to do the the same thing to create a lookup value. The formula in H6 is:

=VLOOKUP(H4&H5,B5:E13,4,0)

For details, see this example.

Note: INDEX and MATCH and XLOOKUP are more robust ways to handle lookups based on multiple criteria.

VLOOKUP and #N/A errors

If you use VLOOKUP you will inevitably run into the #N/A error. The #N/A error just means "not found". For example, in the screen below, the lookup value "Toy Story 2" does not exist in the lookup table, and all three VLOOKUP formulas return #N/A:

One way to "trap" the NA error is to use the IFNA function like this:

The formula in H6 is:

=IFNA(VLOOKUP(H4,B5:E9,2,FALSE),"Not found")

The message can be customized as desired. To return nothing (i.e. to display a blank result) when VLOOKUP returns #N/A you can use an empty string like this:

=IFNA(VLOOKUP(H4,B5:E9,2,FALSE),"") // no message

The #N/A error is useful because it tells you something is wrong. In practice, there are many reasons why you might see this error, including:

  • The lookup value does not exist in the table
  • The lookup value is misspelled, or contains extra space
  • Match mode is exact, but should be approximate
  • The table range is not entered correctly
  • You are copying VLOOKUP, and the table reference is not locked

Read more: VLOOKUP without #N/A errors

More about VLOOKUP

  • More VLOOKUP examples
  • VLOOKUP videos
  • 23 tips for using VLOOKUP

Other notes

  • Range_lookup controls whether value needs to match exactly or not. The default is TRUE = allow non-exact match.
  • Set range_lookup to FALSE to require an exact match and TRUE to allow a non-exact match .
  • If range_lookup is TRUE (the default setting), a non-exact match will cause the VLOOKUP function to match the nearest value in the table that is still less than value .
  • When range_lookup is omitted, the VLOOKUP function will allow a non-exact match, but it will use an exact match if one exists.
  • If range_lookup is TRUE (the default setting) make sure that lookup values in the first row of the table are sorted in ascending order. Otherwise, VLOOKUP may return an incorrect or unexpected value.
  • If range_lookup is FALSE (require exact match), values in the first column of table do not need to be sorted.

Related videos

Hur man använder VLOOKUP för ungefärliga matchningar I den här videon tittar vi på hur man konfigurerar VLOOKUP för att slå upp värden baserat på en ungefärlig matchning. Detta är bra för skattesatser, porto, provisioner och liknande. Hur man byter ut kapslade IF: er med VLOOKUP I den här korta videon tittar vi på hur man ersätter en typisk kapslad IF-formel med en VLOOKUP-formel. Jämfört med kapslade IF-uttalanden är VLOOKUP enklare och mer transparent. Det är också lättare att justera senare. Hur gruppera värden med VLOOKUP I den här videon tittar vi på ett enkelt sätt att använda VLOOKUP för att gruppera data i specifika kategorier. Hur man använder VLOOKUP med en tabell I den här videon tittar vi på hur man använder VLOOKUP för att slå upp värden i en Excel-tabell. Hur man använder INDEX och MATCH med en tabell I den här videon tittar vi på hur man använder INDEX och MATCH med en Excel-tabell. Att använda INDEX och MATCH med en Excel-tabell är underbart enkelt. Strukturerade referenser i en tabell I den här videon tittar vi på hur man använder strukturerad referenssyntax i en tabell.

Intressanta artiklar...