*The VLOOKUP function is the most popular lookup and reference function in Excel. It is also one of the trickiest and the dreaded #N/A error message can be a common sight.*

This article will look at the 6 most common reasons why your VLOOKUP is not working.

- You Need an Exact Match
- Lock the Table Reference
- A Column Has Been Inserted
- The Table has got Bigger
- VLOOKUP Cannot Look to its Left
- Your Table Contains Duplicates

The last argument of the VLOOKUP function, known as *range_lookup*, asks if you would like an approximate or an exact match.

In most cases people are looking for a particular product, order, employee or customer and therefore require an exact match. When looking for a unique value, FALSE should be entered for the *range_lookup* argument.

This argument is optional, but if left empty, the TRUE value is used. The TRUE value relies on your data being sorted in ascending order to work.

The image below shows a VLOOKUP with the range_lookup argument omitted, and the incorrect value being returned.

If looking for a unique value, enter FALSE for the last argument. The VLOOKUP above should be entered as `=VLOOKUP(H3,B3:F11,2,FALSE)`

.

Maybe you are looking to use multiple VLOOKUPs to return different information about a record. If you are planning to copy your VLOOKUP to multiple cells, you will need to lock your table.

The image below shows a VLOOKUP entered incorrectly. The wrong cell ranges are being referenced for the *lookup_value* and *table array*.

The table that the VLOOKUP function uses to look for and return information from is known as the *table_array*. This will need to be referenced absolutely to copy your VLOOKUP.

Click on the references within the formula and press the F4 key on the keyboard to change the reference from relative to absolute. The formula should be entered as `=VLOOKUP($H$3,$B$3:$F$11,4,FALSE)`

.

In this example both the *lookup_value* and *table_array* references were made absolute. Typically it may be just the *table_array* that needs locking.

The column index number, or *col_index_num*, is used by the VLOOKUP function to enter what information to return about a record.

Because this is entered as an index number, it is not very durable. If a new column is inserted into the table, it could stop your VLOOKUP from working. The image below shows such a scenario.

The quantity was in column 3, but after a new column was inserted it became column 4. However the VLOOKUP has not automatically updated.

One solution might be to protect the worksheet so that users cannot insert columns. If users will need to be able to do this, then it is not a viable solution.

Another option would be to insert the MATCH function into the *col_index_num* argument of VLOOKUP.

The `MATCH`

function can be used to look for and return the required column number. This makes the *col_index_num* dynamic so inserted columns will no longer affect the VLOOKUP.

The formula below could be entered in this example to prevent the problem demonstrated above.

As more rows are added to the table, the VLOOKUP may need to be updated to ensure that these extra rows are included. The image below shows a VLOOKUP that does not check the entire table for the item of fruit.

Consider formatting the range as a table (Excel 2007+), or as a dynamic range name. These techniques will ensure that your VLOOKUP function will always be checking the entire table.

To format the range as a table, select the range of cells you want to use for the *table_array* and click **Home** > **Format as Table** and select a style from the gallery. Click the **Design** tab under Table Tools and change the table name in the box provided.

The VLOOKUP below shows a table named *FruitList* being used.

A limitation of the VLOOKUP function is that it cannot look to its left. It will look down the leftmost column of a table and return information from the right.

The solution to this involves not using VLOOKUP at all. Using a combination of the INDEX and MATCH functions of Excel is a common alternative to VLOOKUP. It is far more versatile.

The example below shows it being used to return information to the left of the column you are looking in.

Learn more about using INDEX and MATCH

The VLOOKUP function can only return one record. It will return the first record that matches the value you looked for.

If your table contains duplicates then VLOOKUP will not be up to the task.

Should your list have duplicates? If not consider removing them. A quick way to do this is to select the table and click the **Removes Duplicates** button on the **Data** tab.

Check out the AbleBits Duplicate Remover for a more complete tool for handling duplicates in your Excel tables.

Ok, so your list should have duplicates. In this case a VLOOKUP is not what you need. A PivotTable would be perfect to select a value and list the results instead.

The table below is a list of orders. Let's say you want to return all the orders for a particular fruit.

A PivotTable has been used to enable a user to select a Fruit ID from the report filter and a list of all the orders appears.

This article demonstrated a solution to the 6 most common reasons a VLOOKUP function is not working. Armed with this information you should enjoy a less troublesome future with this awesome Excel function.

Alan Murray is an IT Trainer and the founder of Computergaga. He offers online training and the latest tips and tricks in Excel, Word, PowerPoint and Project.

Table of contents