**Excel** **VLOOKUP function** is probably one of the most known **function** out there and people know the name of it certainly but not many know the power of it and why it’s so famous.

Well today let’s dig in and find out know and how of this **function**.

**VLOOKUP **stands for “Vertical Lookup” and what that means is we are looking for results in the **column**s and there is also a sister **function** to **VLOOKUP **called **HLOOKUP** where H stands for horizontal and that is for getting values stored in the **rows**. We are going to focus on **VLOOKUP **and trust us once you understand how **VLOOKUP **works then the **HLOOKUP** will be much easier to understand.

In more technical terms **VLOOKUP **looks up using a unique identifier and brings you result associated with the lookup value.

The **VLOOKUP function** is available across almost every spreadsheet platform including all versions of *Excel, Excel Online, Google Sheets, Apple Numbers, OpenOffice and LibreOffice* etc.

**Excel** **VLOOKUP **syntax

**VLOOKUP**(lookup_value, table_array, col_index_num, *[**range**_lookup]*)

There are four parts to **VLOOKUP formula** which make everything tick. Once you understand each of it, the concept will be easy to grasp. Let’s try and understand it in simple everyday terms, say finding a particular shirt in a wardrobe and suppose there are two sections to the wardrobe.

Okay so in those terms, the shirt we are looking for will be represented by *lookup_value* and “table_array” will represent the wardrobe and *col_index_num* will be representing one of the two sections of the wardrobe and finally the *[range_lookup]* is an optional parameter which will tell us whether we are looking exclusively for a particular shirt or we could be a little lose with the required demand.

So now you understand somewhat of what we are trying to do with this **formula** let’s try and understand each part of the **syntax** using the **formula** and real examples.

### lookup_value

This part of the **formula** defines the value we are trying to search for and this could either be a **value** which could either be a **value** (number, text) and or **cell reference** (**reference** to a **cell** containing the lookup value)**.**

Let’s have a look at some examples and how this works.

- In the first example we are going to look up using text “Green” and get the shirt number associated with the color Green, the
**formula**for this in the case as shown in the figure below is**VLOOKUP(“Green”,A3:B7,2,FALSE)**. As you can see for looking up text, we have to put the text between two quotation marks. Have a look at the example below to see the**formula**in action.

**Fig 1**

- In the second example we are going to look up a number using the
**VLOOKUP formula**and it will be pretty much the same except we are going remove quotation marks from the equation, have a look at the figure below and see how we are doing that. The**formula**used in the figure below is**VLOOKUP(10,A3:B7,2,FALSE)**

- In the third example we are going to
**reference**a**cell**and get the lookup value from the**cell**and get the results from our**VLOOKUP function**and in the below example I going to**reference**the**cell**D2 and get the results by looking up value from there and the benefit of doing this is you can lookup many**values**without having to change**formula**every time. So, the**formula**for looking up using the**cell**D2 would look like**VLOOKUP(D2,A3:B7,2,FALSE)**. Have a look at the example below to understand it better.

**=**

### table_array

This section defines usually two or more **column**s of data the **VLOOKUP function** looks for value. The **VLOOKUP function** always looks for identifier in the first **column** so from above see the identifier was first the color and on next example, the identifier is the “Shirt #” and in both the figures you can see the lookup **column** is the first one.

The Lookup values are **case insensitive** so you can enter values without worrying about whether its upper case or lower case.

Have a look at the figure above the **formula** used in it, is **VLOOKUP(“Green”,A3:B7,2,FALSE)** and you can see the colors are listed in **column** are A3:A7 and that is the starting **column** of the array and same with Fig 2 **VLOOKUP(10,A3:B7,2,FALSE)** you can see the lookup value “Shirt #” is again stored in **column** in section A3:A7 which again is in the start of the *table_array*.

### col_index_num

This part of **formula** defines the **column** from which we want to get the results from as explained above the left-most **column** in a **VLOOKUP **array is always reserved for the identifier and so if we are looking for any value in the **column** right next to the identifier then the **column** index number would be 2 as the first **column** is our identifier and the next **column** is our results that we want to extract.

Have a look at the examples shown above to see that in all the instances above the **column** number is 2 and that is because we are extracting the second **column** value.

Have a look at the figure 4 to see a different example of the same. In the following example the **formula** used is **VLOOKUP(E2,A3:C7,3,FALSE)** and as you can see as a result we are getting the results from the **column** C.

**range**_lookup

The fourth and final piece of the puzzle of a **VLOOKUP formula** is either **TRUE** or **FALSE** and while optional as per **Excel** it should rarely be considered optional as the **formula** defaults to **TRUE** when left unfilled.

So, the difference between **TRUE** and **FALSE** is simple whenever we are looking for exact results, we should always use **FALSE** as we have been doing in all of our examples above and **TRUE** **range** lookup is useful for finding approximate results.

So how does approximate results work, essentially it matches the closes lowest value with lookup **value** and so for best results its always advised to use it on data sorted by **ascending order.**

Let’s have a look at couple of examples of approximate match to further drive our point home

- Example 1

The first example shows the approximate match of 250 and **Excel** finds the lowest close value to the lookup value which is 120 and note while 250 will be much closer to 300 but it finds the lowest closest value to 120 it is and gets us the result from the second **column**.

Have a look at the figure below to see the **formula** in action.

- Example 2

In this example we are looking up for the value 60 and you can notice it in the figure below, **Excel** finds us the results against the 50 **value**. Which again follows the same rule, that is finding the lowest closest value.

**VLOOKUP **Applications

Now that we have figured out how this **formula** works and what elements make it tick, now let’s figure how you can use it and how can it benefit you in the long run.

You can do a lot with **VLOOKUP **and that includes looking up data in the same **sheet**, looking up data in the different **worksheet**s, looking up data in different **workbook**s.

We have already seen **VLOOKUP **in action in the same **sheet** and so now let’s look at some other examples and explore more on what you can do.

Let’s have a look at different scenarios using real examples.

**VLOOKUP **in **Excel** from other **sheet**s

It’s very rare sight to see **VLOOKUP **done on the same **sheet**, as its usually done to find correlating data across the **sheet**s and in order to do that we have to **reference** the *table_array *argument using the **sheet** name followed by exclamation mark and occasionally surround the **sheet** name by single quotation marks depending on if the **sheet** name has space in its name.

Alternatively you can simply type the *lookup_value* and then switch the **sheet** and navigate to the data where it is and select the entire **array** area and it will populate the **array range** on the **formula** with the correct format and I recommend this method as opposed to typing as it will help you save a ton of time and problem solving with the format.

With that said let’s look at a couple of real examples.

- Example 1

In the first example below you can see we are referencing the *table_array *part of the **formula** from the “sheet5” and as you can see it follows the naming convention we explained above the “sheet5” is the **sheet** name followed by the exclamation mark followed by the range of the *table_array.*

- Example 2

Now in the second example I am going to show you how the single quotation marks play their part in the naming of the **sheet**.

As you can see below in, I used the same example I just changed the **sheet** name to “Sheet Name” and you can see how the **sheet** name is now wrapped around a single quotation mark and that is how **Excel** deals with the space in the names.

**VLOOKUP **in **Excel** from other **Workbook**s

This is another spectacular way you can use **VLOOKUP **to solve any of your problems. Suppose you want get information from a different **workbook** using a common identifier and so if you have the **workbook** open then all you need to do is have the **workbook** name be surrounded by square brackets.

So, suppose the **sheet** name is “Sheet Name” and **workbook** name is “tutorial” then your **formula** would look like something like this **=VLOOKUP(C3,'[tutorial.xlsx]Sheet Name’!A3:B14,2,FALSE)**.

Now as you can see, we already utilized the spacing in this example and as a result the **sheet** and **workbook** name is surrounded by single quotation marks.

Now once you close your **workbook** with the *lookup_array* then your **formula** will now show the full path of the **workbook** have a look below in the example to see it in action.

One big tip I would always suggest going for is select the range by navigating to **workbook** and **sheet**, instead of typing it as it will automatically fill up the **workbook**, **sheet** and **range name** without you have to do any typing at all.

## Using Named Ranges with VLOOKUP

Like a lot of things in **Excel**, you can refer to named ranges in the *lookup_array* segment to make your **formula**s easier to write and more **dynamic** than say a **static range**.

Using **named range** is pretty simple in the **VLOOKUP **for example we define a **named range** after selecting a **range** and creating a **range** name by simply typing it in there. **Named Ranges** can’t have spaces in its name and we will go in more detail about the same some other time

Have a look below in order to see us creating a named range then after that we will create a **VLOOKUP formula** using that.

As you can see below, we have used the **named range** we created above in the below **formula** in *lookup_array* segment successfully.

The **formula** used below **is =VLOOKUP(E2,Wardrobe,3,FALSE)** which does not refer directly to a **range** but will work just as the same.

Some things to note while using **VLOOKUP**.

**VLOOKUP function**always looks at right and the identifier has to be the very first**column**in the*table_array*for it to work.**VLOOKUP**is**case insensitive**so BuS is same as bUS.- Always use
**absolute values**while defining**ranges**i.e. use**ranges**with dollar signs to fix the*table_array*range as that would not be a problem when dragging the**formula**. So, for example in place of A3:B7 use $A$3:$B$7 as that fixes the**range**. - Also, in most cases you will be using “False” parameter so try to stick to that unless on places where you want approximate
**matches**which are rare. - About the errors

- #N/A error occurs when
**VLOOKUP**can’t find a**match**. - #VALUE! error occurs when the
*col_index_num*is less than 1. - In case the
*col_index_num*is higher than the number supplied in the array then the #REF! error is reflected in the**formula**.

# Exercise & More.

## Question 1.

What would the correct **formula** for the looking up the value of shirt # corresponding to the color Yellow based on the following example data?

- =VLOOKUP(“YELLOW”,A3:C7,2,FALSE)
- =VLOOKUP(Yellow,A3:C7,2,FALSE)
- =VLOOKUP(Yellow,A3:C7,2,TRUE)
- =VLOOKUP(“Yellow”,A3:C7,1,FALSE)

The correct Answer is A. Now let’s look at the other wrong options and see what’s wrong, the option B is wrong because the *lookvalue_value* argument is text and its not surrounded by **double quotations marks** and that would not work and throw and **error**. In the same vain the option C is wrong as well as again the *lookup_value* is not surrounded by **double** **quotation marks** and additionally since we are looking up for exact **value** the fourth argument is set to lookup approximate **value** and finally the last option has the wrong **column** number as *col_index_num *and so it will result in “Yellow” as a result and which is not the desired answer.

## Question 2.

What would be the correct **formula** for looking up number 30 and give us the color corresponding to the number based on the **reference**s as per the following image.

- =VLOOKUP(“30”,A3:B7,2,FALSE)
- =VLOOKUP(30,A3:B7,2,FALSE)
- =VLOOKUP(“30”,A3:B7,1,FALSE)
- =VLOOKUP(30,A3:B7,2,TRUE)

The correct answer is option B. Lets look at the wrong answers and figure out what’s wrong. The option A is wrong is because we are looking up a number and *lookup_value* is surrounded by **double quotations marks** and option C would wrong because *lookup_value* again is number but in the first argument the value is surrounded by **double quotation marks** and which would be wrong and also the *col_index_num* argument is wrong as well as we are looking up results from second **column**. Finally, the answer is the **column** D is wrong because the fourth argument is set to **TRUE** and we are looking for exact results.

## Question 3:

What would be the correct **formula** for referencing another **cell** and get a **VLOOKUP **results from the **column** that contains pant # based on the **cell** E2 and the array shown in the image below?

- =VLOOKUP(E2,A3:C7,3,FALSE)
- =VLOOKUP(“E2”,A3:C7,3,FALSE)
- =VLOOKUP(E2,A3:C7,2,FALSE)
- =VLOOKUP(“E2”,A3:C7,2,FALSE)

The correct answer is answer A. Now let’s review the wrong options and figure out why they are not right. The answer in option B is wrong because the *lookup_value *argument is wrong as the **lookup** cell is surrounded by **double quotation marks** and that shouldn’t be the case when **referencing** the cell. The option c is wrong because we are looking for results in **column** 3 and the argument is set to 2 and that is wrong and finally the answer D is wrong because of both the issues that we discussed in option B and C.

## Question 4:

For finding best results in approximate match we have to **sort** the data by which **order**?

- Descending
- Ascending
- Both
- Neither

The correct answer is B.

Question 5:

**VLOOKUP **can only look for value on which side of identifier **column**

- Left
- Right
- Left but with some alteration to the
**formula** - Not Applicable

The correct answer is B.

## Question 6:

Which is the correct **VLOOKUP formula** for dataset shown on the below image which resides on **sheet** “Data here” and we are **referencing** from the **sheet** Question 6 for finding the Shirt # based on the color “Cyan”.

- =VLOOKUP(“CYAN”,’Data Here’!A3:C7,2,FALSE)
- =VLOOKUP(Cyan,’Data Here’!A3:C7,2,FALSE)
- =VLOOKUP(“Cyan”,Data Here!A3:C7,2,FALSE)
- =VLOOKUP(CYAN,Data Here!A3:C7,2,FALSE)

The correct option is A and Let’s review the wrong answers to observe the mistake the option B is wrong because we are looking up a **textual value** and *lookup_value* argument is not surrounded by **double quotation marks** and that wouldn’t work. The option C is wrong because the **sheet** name has a space in it and the **sheet** name is not surrounded by **single quotation marks**. And finally, option D is wrong because the *lookup_value *is not surrounded by **double quotations marks** and **sheet** name is not surrounded by **single quotation marks** even though the **sheet** name has a space in it.