You are on page 1of 9

The tutorial shows how to combine VLOOKUP and IF function together to v-lookup with if

condition in Excel. You will also learn how to use IF ISNA VLOOKUP formulas to replace #N/A
errors with your own text, zero or blank cell.

Whilst the VLOOKUP and IF functions are useful on their own, together they deliver even more
valuable experiences. This tutorial implies that you remember the syntax of the two functions
well, otherwise you may want to brush up on your knowledge by following the above links.

 IF formula with VLOOKUP: return True/False or Yes/No


 IF VLOOKUP formula to perform different calculations
 IF ISNA VLOOKUP to hide #N/A errors
 IFNA VLOOKUP to trap #N/A in Excel 2013, Excel 2016 and Excel 2019
 Excel Vlookup: if not found return 0
 Excel Vlookup: if not found return blank
 IF INDEX MATCH - left vlookup with If condition

Vlookup with If statement: return True/False, Yes/No, etc.


One of the most common scenarios when you combine If and Vlookup together is to compare the
value returned by Vlookup with a sample value and return Yes / No or True / False as the result.

In most cases, the following generic formula would work nicely:

IF(VLOOKUP(…) = value, TRUE, FALSE)

Translated in plain English, the formula instructs Excel to return True if Vlookup is true (i.e.
equal to the specified value). If Vlookup is false (not equal to the specified value), the formula
returns False.

Below you will a find a few real-life uses of this IF Vlookup formula.

Example 1. Compare Vlookup result with a specific value

Let's say, you have a list of items in column A and quantity in column B. You are creating a
dashboard for your users and need a formula that would check the quantity for an item in E1 and
inform the user whether the item is in stock or sold out.

You pull the quantity with a regular Vlookup with exact match formula like this:

=VLOOKUP(E1,$A$2:$B$10,2,FALSE)

Then, write an IF statement that compares Vlookup's result with zero, and returns "No" if it is
equal to 0, "Yes" otherwise:

=IF(VLOOKUP(E1,$A$2:$B$10,2,FALSE)=0,"No","Yes")
Instead of Yes/No, you can return TRUE/FALSE or In Stock/Sold out or any other two choices.
For example:

=IF(VLOOKUP(E1,$A$2:$B$10,2)=0,"Sold out","In stock")

You can also compare the value returned by Vlookup with sample text. In this case, be sure to
enclose a text string in quotation marks, like this:

=IF(VLOOKUP(E1,$A$2:$B$10,2)="sample text",TRUE,FALSE)

Example 2. Compare Vlookup result with another cell

Another typical example of Vlookup with If condition in Excel is comparing the Vlookup output
with a value in another cell. For example, we can check if it's greater than or equal to a number
in cell G2:

=IF(VLOOKUP(E1,$A$2:$B$10,2)>=G2,"Yes!","No")
And here is our If formula with Vlookup in action:

In a similar fashion, you can use any other logical operator together with a cell reference in your
Excel If Vlookup formula.

Example 3. Vlookup values in a shorter list

To compare each cell in the target column with another list and return True or Yes if a match is
found, False or No otherwise, use this generic IF ISNA VLOOKUP formula:

IF( ISNA( VLOOKUP(…)),"No","Yes")

If Vlookup results in the #N/A error, the formula returns "No", meaning the lookup value is not
found in the lookup list. If the match is found, "Yes" is returned. For example:

=IF(ISNA(VLOOKUP(A2,$D$2:$D$4,1,FALSE)),"No","Yes")
If your business logic requires the opposite results, simply swap "Yes" and "No" to reverse the
formula's logic:

=IF(ISNA(VLOOKUP(A2,$D$2:$D$4,1,FALSE)),"Yes","No")

Excel If Vlookup formula to perform different calculations


Besides displaying your own text messages, If function with Vlookup can perform different
calculations based on the criteria you specify.

Taking our example further, let's calculate the commission of a specific seller (F1) depending on
their effectiveness: 20% commission for those who made $200 and more, 10% for everyone else.

For this, you check if the value returned by Vlookup is greater than or equal to 200, and if it is,
multiply it by 20%, otherwise by 10%:

=IF(VLOOKUP(F1,$A$2:$C$10,3,FALSE )>=200, VLOOKUP(F1,$A$2:$C$10,3,FALSE)*20%,


VLOOKUP(F1,$A$2:$C$10,3,FALSE)*10%)
Where A2:A10 are seller names and C2:C10 are sales.

IF ISNA VLOOKUP to hide #N/A errors


If the VLOOKUP function cannot find a specified value, it throws an #N/A error. To catch that
error and replace it with your own text, embed a Vlookup formula in the logical test of the IF
function, like this:

IF(ISNA(VLOOKUP(…)), "Not found", VLOOKUP(…))

Naturally, you can type any text you like instead of "Not found".

Supposing, you have a list of seller names in one column and sales amounts in another column.
Your task is to pull a number corresponding to the name the user enters in F1. If the name is not
found, display a message indicating so.

With the names in A2:A10 and amounts C2:C10, the task can be fulfilled with the following If
Vlookup formula:

=IF(ISNA(VLOOKUP(F1,$A$2:$C$10,3,FALSE)), "Not found",


VLOOKUP(F1,$A$2:$C$10,3,FALSE))
If the name is found, a corresponding sales amount is returned:

If the lookup value is not found, the Not found message appears instead of the #N/A error:

How this formula works

The formula's logic is very simple: you use the ISNA function to check Vlookup for #N/A errors.
If an error occurs, ISNA returns TRUE, otherwise FALSE. The above values go to the logical
test of the IF function, which does one of the following:

 If the logical test is TRUE (#N/A error), your message is displayed.


 If the logical test is FALSE (lookup value is found), Vlookup returns a match normally.

IFNA VLOOKUP in newer Excel versions


In Excel for Office 365, Excel 2019, Excel 2016 and 2013, you can use the IFNA function
instead of IF ISNA to catch and handle #N/A errors:
IFNA(VLOOKUP(…), "Not found")

In our example, the formula would take the following shape:

=IFNA(VLOOKUP(F1,$A$2:$C$10,3, FALSE), "Not found")

Tip. If you'd like to trap all sorts of errors, not only #N/A, use VLOOKUP in combination with
the IFERROR function. More details can be found here: IFERROR VLOOKUP in Excel.

Excel Vlookup: if not found return 0


When working with numerical values, you may want to return a zero when the lookup value is
not found. To have it done, use the IF ISNA VLOOKUP formula discussed above with a little
modification: instead of a text message, supply 0 in the value_if_true argument of the IF
function:

IF(ISNA(VLOOKUP(…)), 0, VLOOKUP(…))

In our sample table, the formula would go as follows:

=IF(ISNA(VLOOKUP(F2,$A$2:$C$10,3,FALSE)), 0, VLOOKUP(F2,$A$2:$C$10,3,FALSE))

In the recent versions of Excel 2016 and 2013, you can use the IFNA Vlookup combination
again:

=IFNA(VLOOKUP(I2,$A$2:$C$10,3, FALSE), 0)

Excel Vlookup: if not found return blank cell


This is one more variation of the "Vlookup if then" statement: return nothing when the lookup
value is not found. To do this, instruct your formula to return an empty string ("") instead of the
#N/A error:

IF(ISNA(VLOOKUP(…)), "", VLOOKUP(…))

Below are a couple of complete formula examples:

For all Excel versions:

=IF(ISNA(VLOOKUP(F2,$A$2:$C$10,3,FALSE)), "", VLOOKUP(F2,$A$2:$C$10,3,FALSE))

For Excel 2016 and Excel 2013:

=IFNA(VLOOKUP(F2,$A$2:$C$10,3, FALSE), "")

If with Index Match - left vlookup with If condition


Experienced Excel users know that the VLOOKUP function is not the only way to do vertical
lookup in Excel. The INDEX MATCH combination can also be used for this purpose and it's
even more powerful and versatile. The good news is that Index Match can work together with IF
in exactly the same way as Vlookup.

For example, you have order numbers in column A and seller names in column B. You are
looking for a formula to pull the order number for a specific seller.

Vlookup cannot be used in this case because it cannot search from right to left. Index Match will
work without a hitch as long as the lookup value is found in the lookup column. If not, a #N/A
error will show up. To replace the standard error notation with your own text, nest Index Match
inside IF ISNA:
=IF(ISNA(INDEX(A2:A10, MATCH(F1, $B$2:$B$10, 0))), "Not found", INDEX(A2:A10,
MATCH(F1, $B$2:$B$10, 0)))

In Excel 2016 and 2016, you can use IFNA instead of IF ISNA to make the formula more
compact:

=IFNA(INDEX(A2:A10, MATCH(F1, $B$2:$B$10, 0)), "Not found")

In a similar manner, you can use Index Match in other If formulas.

You might also like