# True or false, IF provides the answer

Today’s post is brought to you by Frederique Klitgaard. Frederique is a writer on Office.com

It’s easy to understand why the IF function appears in the top 10 list of popular Excel functions. It’s a versatile function that can be used for all sorts of tasks.

For example, this function can save you a lot of time when you need to grade a stack of papers. It quickly turns a long list of test scores into grades without having to do any of the math. It can also instantly determine who passed or failed.

I don’t ever grade papers but I’ll use this example to show you the effectiveness of this function. Let’s start by having a look at the syntax that this function uses to determine that a condition is true or false.

## IF(logical_test, [value_if_true], [value_if_false])

The first argument, logical_test, is the required value or expression that will be evaluated to true or false. Expressions use comparison operators, such as equal to (=) or greater than (>), for example A10=100. For a list of comparison operators, see Calculation operators and precedence.

The other two arguments, value_if_true and value_if_false, are optional arguments (as indicated by the square brackets in the syntax). When these arguments are used in the formula, they’ll return the value that you want to be displayed when the logical_test argument evaluates to true or false.

I’ll  apply this syntax to the following list of test scores.

 Student Test Score Result Grade Student 1 35 Student 2 67 Student 3 88 Student 4 70 Student 5 95

To determine who passed or failed the test, I want the formula to return the following results:

 Test score Result Greater than or equal to 70 Passed Less than 70 Failed

In the first cell of the Result column, cell C2, I’ll enter the following formula:

## IF(B2>=70, “Passed”, “Failed”)

To turn the list of test scores into grades, I can go a step further and embed additional IF functions as formula arguments, often referred to as nesting. You can nest up to 64 IF functions as value_if_true and value_if_false arguments.

I want the formula to return the grades as follows:

 Test score Grade Greater than 89 A From 80 to 89 B From 70 to 79 C From 60 to 69 D Less than 60 F

Based on these conditions, the nested formula I’ll enter in the first cell of the Grade column, cell D2, will then look like this:

## IF(B2>89, “A”, IF(B2>79, “B”, IF(B2>69, “C”, IF(B2>59, “D”, “F”))))

Notice that I’ve nested three other IF functions to calculate the grades. The last argument doesn’t need the IF function; it automatically displays an F for numbers that have not been accounted for in the nested IF functions. I’ve used the IF function four times, so I’ll need to include four ending parentheses in the formula.

 Student Test Score Result Grade Student 1 35 Failed F Student 2 67 Failed D Student 3 88 Passed B Student 4 70 Passed C Student 5 95 Passed A

Because I used a table format, the formula is automatically applied to all test scores. If that were not the case, however, I would just fill the formula down to the other cells in the column to get my list of grades.

That’s all there is to it. I’m ready to get my rubber stamp and grade away!

I hope that the examples I used will help you become familiar with this function. For additional information and other examples, please see our function reference article, IF function.

### Office Blogs Comments

• Nice explanation of the IF() function. I believe you should mention that the limit of 64 levels of nesting only applies to Excel 2007 and newer. Prior versions of Excel (which are still used by tens of millions of people) have a limit of just 7 levels.

IF() is useful without question, but there are often much better strategies to employ, as noted in my article "I Herart IF()":

www.excelhero.com/.../i-heart-if.html

Your example of using the IF() function for grades is actually the classic example of what Approximate Match is used for in the [range_lookup] parameter of the VLookup() function, which would be a MUCH better solution for grades, especially if one included additional thresholds like A- and B+.

I detail this in my VLookup() video at:

www.excelhero.com/.../which-function-to-use---part-1.html

Regards,

Daniel Ferry

excelhero.com

• Daniel,

Aren't you being extremely polite. This article should have being titled

"A great example of When not to use IF" - Tragic to see such post on a MS site

• =MID("FFFFFFDCBAA",INT(B2/10)+1,1) works nicely too.

• Here's another, less fragile way

=MID("ABCDF",10-MAX(MIN(INT(B2/10),9),5),1)

• It’s easy to understand why the IF function appears in the top 10 list of popular Excel functions. It’s a versatile function that can be used for all sorts of tasks.

Do you have the source for this please? I'd be really interested, it would make a nice focus for an Excel class.

I'm afraid I'm with the other comments on the appropriateness here, exam grades are the example I use when teaching when not to use IF statements!

• Daniel, thank you for pointing out that earlier versions of Excel have a limit of 7 nesting levels. And your blog about this function on excelhero.com is great!

Sounds like I could have used a better example. Using MATCH and MID are interesting alternatives.

IF is on our top 10 list because we get a lot of queries for this function. This indicates that there is an enormous interest in using IF. I'd love to hear about best practices and better examples.

• Very interesting. I love Excel and am always willing to learn more.

• how to use microsoft excel to calculate the program? can teach me?

• A good place to start is the Office training site:

http://office.microsoft.com/en-us/support/training-FX101782702.aspx

You’ll find an assortment of training courses there, such as this one: Get to know Excel 2010: Create formulas

http://office.microsoft.com/en-us/excel-help/get-to-know-excel-2010-create-formulas-RZ101862712.aspx

You’ll also find training courses for earlier versions of Excel.

• Hi i facing isuee in excel, in formula =if.

there are 2 colums with date a and b there are blank cell in the coloums, i want to fill the banks with the  dates in the b coloum but the critira is if a and b is blank take the date from b i.e above date will come in the blank cell for coloum b, i added a coloum c and used =if(a2=b2,b1," ") how do i do it. please suggest.

• Hi jaideo,

You could use the actual dates you want to insert instead. For example:

=IF(A2=B2, "9/16/2010", "9/15/2010")

After you fill the formula down in the C column, you can copy the results and paste them as values in cell A2 (Home tab, Clipboard group, Paste arrow, Paste Special, Values).

• This is beneficial for selecting multiple variable attributes in a table.  I was used to a different logical variable for computing items and this is extremely helpful.

Thank you