Google Sheets IF function - usage and formula examples

The IF function in Google Sheets is one of the easiest functions to learn, and while this holds true, it is also a very helpful one.

In this tutorial, I invite you to take a closer look at how Google Spreadsheet IF function works and what advantages you will get from using it.

What is the IF function in Google Sheets?

Whenever you use the IF function, you create a decision tree in which certain action follows under one condition, and if that condition is not met – another action follows.

For this purpose, the condition of the function must be in a format of the alternative question with only two possible answers: "yes" and "no".

This is what a decision tree may look like: Decision tree of the alternative question.

So, the IF function allows you to ask a question and indicate two alternative actions depending on the received answer. This question and the alternative actions are known as three arguments of the function.

IF function syntax in Google Sheets

The syntax for the IF function and its arguments are as follows:

=IF(logical_expression, value_if_true, value_if_false)
  • logical_expression – (required) a value or logical expression that is tested to see if it is TRUE or FALSE.
  • value_if_true – (required) the operation that is carried out if the test is TRUE.
  • value_if_false – (optional) the operation that is carried out if the test is FALSE.

Let's explore the arguments of our IF function in more detail.

The first argument represents a logical question. Google Sheets answers this question with either "yes" or "no", i.e. "true" or "false".

How to formulate the question properly, you may wonder? To do that, you can write a logical expression using such helpful symbols (or comparison operators) as "=", ">", "<", ">=", "<=", "<>". Let us try and ask such a question together.

Usage of the IF function

Let's assume that you are working in the company selling chocolate in several consumer regions with many clients.

This is what your sales data may look like in Google Sheets: Sample sales data for Google Sheets.

Imagine that you need to separate sales made in your local regions from those from abroad. To accomplish that, you should add another descriptive field for each sale – a country where the sales took place. Since there is a lot of data, you need this description field to be created automatically for each entry.

And this is when the IF function comes to play. Let's add the "Country" column to the data table. "West" region represents local sales (Our Country), while the rest are the sales from abroad (Rest of the World).

How to write out the function properly?

Place the cursor in F2 to make the cell active and type in the equality sign (=). Google Sheets will immediately understand that you are going to enter a formula. That's why right after you type the letter "i" it will prompt you to choose a function that begins with that same letter. And you should choose "IF". Function prompt in Google Sheets.

After that, all your actions will be accompanied by prompts as well.

For the first argument of the IF function, enter B2="West". As with the other Google Sheets functions, you don't need to enter the address of the cell manually – a mouse click is enough. Then enter comma (,) and specify the second argument.

The second argument is a value that F2 will return if the condition is met. In this case, it will be the text "Our Country".

And again, after the comma, write the value of the 3rd argument. F2 will return this value if the condition is not met: "Rest of the World". Do not forget to finish your formula entry by closing parenthesis ")" and pressing "Enter".

Your entire formula should look like this:

=IF(B2="West","Our Country","Rest of the World")

If everything is correct, F2 will return the text "Our Country": Google Sheets IF function.

Now, all you have to do is to copy this function down column F.

Tip. There's one way to process the entire column with one formula. The ARRAYFORMULA function will help you do that. Using it in the first cell of the column, you can test all cells below against the same condition, and return the corresponding result to each row at the same time:

=ARRAYFORMULA(IF(B2:B69="West","Our Country","Rest of the World")) Process entire ranges using IF + ArrayFormula.

Let's examine the other ways of working with the IF function.

IF function and text values

The usage of the IF function with a text has already been illustrated in the example above.

Note. If the text is being used as the argument, then it must be enclosed in double-quotes.

IF function and numerical values

You can use numbers for the arguments just as you did with the text.

However, what is very important here is that the IF function makes it possible to not only fill cells with certain numbers based on the conditions met but also calculate.

For example, let's say you offer your clients various discounts based on the total value of the purchase. If the total is more than 200, then the client gets a 10% discount.

For that, you need to use column G and name it "Discount". Then enter the IF function in G2, and the second argument will be represented by the formula that calculates the discount:

=IF(E2>200,E2*0.1,0) IF with numbers in Google Sheets.

IF blanks/non-blanks

There are cases when your result depends on whether the cell is empty or not. There are two ways to check that:

  1. Use the ISBLANK function.

    For example, the following formula checks if cells in column E are empty. If so, no discount should be applied, otherwise, it's 5% off:

    =IF(ISBLANK(E2)=TRUE,0,0.05) Check if a cell is blank in Google Sheets.

    Note. If there's a zero-length string in a cell (returned by some formula), the ISBLANK function will result in FALSE.

    Here is another formula to check if E2 is empty:

    =IF(ISBLANK(E2)2<>FALSE,0,0.05)

    You can turn the formula the other way around and see if cells are not blank instead:

    =IF(ISBLANK(E2)=FALSE,0.05,0

    =IF(ISBLANK(E2)<>TRUE,0.05,0)

  2. Use standard comparison operators with a pair of double-quotes:

    Note. This method considers zero-length strings (indicated by double-quotes) as empty cells.

    =IF(E2="",0,0.05) – check if E2 is blank

    =IF(E2<>"",0,0.05) – check if E2 is not empty.

    Tip. In a similar manner, use double-quotes as an argument to return an empty cell by the formula:

    =IF(E2>200,E2*0,"")

IF in combination with other functions

As you have already learned, the text, numbers, and formulas can act as the arguments of the IF function. However, other functions can play that role as well. Let's see how it works.

Google Sheets IF OR

Remember the first way you figured out the country where you sold chocolate? You checked if B2 contained "West".

However, you can build the logic the other way around: list all the possible regions that belong to the "Rest of the World" and check if at least one of them appears in the cell. The OR function in the first argument will help you do that:

=OR(logical_expression1, [logical_expression2, ...])
  • logical_expression1 – (required) the first logical value to check for.
  • logical_expression2 – (optional) the next logical value to check for.
  • and so on.

As you can see, you just enter as many logical expressions as you need to check and the function searches if one of them is true.

To apply this knowledge to the table with sales, mention all the regions that belong to the sales abroad, and the other sales will automatically become local:

=IF(OR(B2="East",B2="South"),"Rest of the World","Our Country") IF with OR in Google Sheets.

Google Sheets IF AND

The AND function is just as simple. The only difference is that it checks if all listed logical expressions are true:

=AND(logical_expression1, [logical_expression2, ...])

E.g. you need to narrow the search to your town and you know that it is currently buying only hazelnuts. So there are two conditions to consider: region – "West" and product – "Chocolate Hazelnut":

=IF(AND(B2="West",C2="Chocolate Hazelnut"),"Our Country","Rest of the World") Google Sheets IF AND formula.

Nested IF formula vs. IFS function for Google Sheets

You can also use the IF function itself as an argument for the bigger IF function.

Let's assume that you have set stricter discount conditions for your clients. If the total purchase is more than 200 units, they get a 10% discount; if the total purchase is between 100 and 199, the discount is 5%. If the total purchase is lower than 100, there is no discount whatsoever.

The following formula shows how the function will look in the cell G2:

=IF(E2>200,E2*0.1,IF(E2>100,E2*0.05,0)) Google Sheets nested IF.

Note that it is another IF function that is used as the second argument. In such cases, the decision tree is as follows: Nested IF decision tree.

Let's make it even more fun and complicate the task. Imagine that you're offering the discounted price to the one region only - "East".

To do that correctly, add the logical expression "AND" to our function. The formula will then look the following way:

=IF(AND(B2="East",E2>200),E2*0.1,IF(AND(B2="East",E2>100),E2*0.05,0)) Using AND in Google Sheets nested IF.

As you can see, the number of discounts has reduced greatly while their amount remains intact.

There's also an easier way to write the above thanks to the IFS function:

=IFS(condition1, value1, [condition2, value2, …])
  • condition1 – (required) is the logical expression you want to test.
  • value1 – (required) is the value to return if the condition1 is true.
  • and then you just list conditions with their values to return if they are true.

Here's how the above formula will look with IFS:

=IFS(AND(B2="East",E2>200),E2*0.1,AND(B2="East",E2>100),E2*0.05) Use IFS instead of nested IF.

Tip. If there's no true condition, the formula will return the #N/A error. To avoid that, wrap your formula with IFERROR:

=IFERROR(IFS(AND(B2="East",E2>200),E2*0.1,AND(B2="East",E2>100),E2*0.05),0) Avoid errors with IFERROR.

SWITCH as an alternative to multiple IFs

There's one more function you may want to consider instead of the nested IF: Google Sheets SWITCH.

It checks if your expression corresponds to a list of cases, one by one. When it does, the function returns a corresponding value.

=SWITCH(expression, case1, value1, [case2, value2, ...], [default])
  • expression is any cell reference, or a range of cells, or even an actual math expression, or even a text that you'd like to equal to your cases (or test against the criteria). Required.
  • case1 is your first criteria to check the expression against. Required.
  • value1 is a record to return if the case1 criterion is the same as your expression. Required.
  • case2, value2 repeat as many times as criteria you have to check and values to return. Optional.
  • default is also completely optional. Use it to see a specific record if none of the cases is met. I'd recommend using it every time to avoid errors when your expression doesn't meet matches among all the cases.

Here are a couple of examples.

To test your cells against a text, use ranges as an expression:

=ARRAYFORMULA(SWITCH(B2:B69,"West","Our Country","Rest of the World")) Use a range as an expression to test against the text.

In this formula, SWITCH checks what record is in every cell in column B. If it's West, the formula says Our Country, otherwise, Rest of the World. ArrayFormula makes it possible to process the entire column at once.

To work with calculations, it's better to use a boolean expression:

=SWITCH(TRUE,$E2>200,$E2*0.1,AND($E2<200,$E2>100),$E2*0.05,0) Use booleans as an expression to test against calculations.

Here SWITCH checks if the result of the equation is TRUE or FALSE. When it's TRUE (like if E2 is really greater than 200), I get a corresponding result. If none of the cases in the list is TRUE (meaning they are FALSE), the formula simply returns 0.

Note. SWITCH doesn't know how to calculate the entire range at once, so no ARRAYFORMULA in this case.

IF statements based on a count

One of the questions we get asked a lot is how to create the IF formula that will return whatever you need if the column contains or doesn't contain a certain record.

For example, check if a customer's name appears more than once in a list (column A) and put the corresponding word (yes/no) into a cell.

A solution is simpler than you may think. You need to introduce the COUNTIF function to your IF:

=IF(COUNTIF($A$2:$A$69,$A2)>1,"yes","no") Use COUNTIF within your IF function.

Make Google Sheets build IF formulas for you – IF Formula Builder add-on

If you're tired of keeping track of all those extra characters and proper syntax in formulas, there's another solution available.

IF Formula Builder add-on for Google Sheets offers a visual way of creating IF statements. The tool will handle syntax, extra functions and all required characters for you.

All you need to do is:

  • fill blanks with your records one by one. No special treatment for dates, time, etc. Enter them as you always do and the add-on will recognize the data type.
  • select required comparison operators from the suggested drop-down lists.
  • if needed, add multiple logical expressions in a click: IF OR, IF AND, ELSE IF, THEN IF.
IF Formula Builder add-on for Google Sheets.

As you can see, each logical expression takes its own line. The same goes for true/false outcomes. This reduces the number of possible confusion over the formula drastically.

As you fill everything out, the formula for use will grow in the preview area at the top of the window. To its left, you can select a cell in your sheet where you'd like to have the formula.

When you're ready, paste the formula into the cell of interest by clicking the Insert formula button at the bottom.

Please visit the online tutorial for IF Formula Builder to see all options described in detail.

I hope that there's no room for any doubt now that the IF function, though a very simple one at first glance, opens the door to many options for data processing in Google Sheets. But if you still have questions, feel free to ask them in the comments section down below – we'll be happy to help!

You may also be interested in

Table of contents

607 comments

  1. This seems like it should be an easy function. Every combo of formulas even with the formula builder won't grab the data I'm looking for. I have two sheets I'm working in. I'm trying to pull data from another sheet (JanExp) based on column criteria. My column criteria is "subscriptions". I want the value in Column E based on if its criteria is "subscriptions". The formula it's giving me seems to work, but it just gives me a blank value even when a number is present in column E, but it isn't giving me an error saying my formula is invalid.

    =IF(JanExp!C1 = "Subscriptions", JanExp!D1, )

    • Ha- GOT IT!! I figured it out. I needed a SUMIF in front of it. I knew it didn't seem that difficult. Thanks for the great reference point to get me started!

      =SUMIF(JanExp!C:C,"Subscriptions",JanExp!D:D)

  2. I have three columns in Google Sheets:
    Column P = Effective Date
    Column Q = End Date
    Column R = Days Remaining in Term

    In Column R, I want to show the number of days between the End Date (Column Q) and today's date. If Column Q is blank, I want the corresponding cell in Column R to be blank. If Column Q is a date in the past, or less than today's date, I want the corresponding cell in Column R to show "Past Due".

    Currently, I am using this formula: =if(and(isdate(P37),isdate(Q37)),DATEDIF(Sheet2!$A$1,Q:Q,"D"),) and it is working for the first two scenarios, however, I can't figure out how to account for the third scenario, when the cell should say "Past Due".

    • Hello Trystan,

      I'm sorry, I've got a bit confused by the Sheet2!A1 (does it contain the TODAY function?) and with the logic of the 'Past Due' label if the end date was before today's (it isn't past due then, is it?). Hence, for me to be able to help you better, please consider sharing an editable copy of your spreadsheet with us (support@apps4gs.com) including your formula.
      Note. We keep that Google account for file sharing only and don't monitor its Inbox. Please do not email there. Once you share the file, just confirm by replying to this comment.

      I'll look into it and try to help.

  3. hi i'm trying to use your examples with the following:
    column a (a drop down menu with three options)
    column b (numbers)

    I'm trying to create an if function that will calculate total of column B IF column a has a certain menu option.
    my formula is not working: =SUMIF((a10:B50="Foundation"),(b10:b50))

  4. Team, I am calculating whether employees have earned an hour of acrued hours based on hours worked. When they work at least 37 hours a week, they earn an hour of sick time up to 40 hours for the year. I created and if/and formula that populates a 1(representing an hour) or 0 if they have not worked 37 hours. In addition, once they reach forty hours of sick time and acrue 40 hours of sick time, the formula will stop acruing hours. I created an if/and statement in each of the cells. I need to total the # of YTD hours acrued. I have not been successful in finding the appropriate way to sum the column. I am assuming that is because of the formula in each of the cells.

    How can I sum a column of cells that have #'s achieved with an if/and formula.

      • Hi Natalia,
        Any help with Linda's formula? I am trying to do the same thing using a column when an employee hits 30 hours.

        Thank you!

        • Hi Joanne,

          I suggested Linda to try SUMIFS to tally time based on the condition provided. I'm unable to provide a formula since I don't have all the details necessary and don't know how the data is arranged. Have you seen this function?

    • Hi Linda,
      Can you give me the formula you used ? This is exactly what I need. Thank you in advance for any help!
      Joanne

  5. I am trying to create a simple function in a Google Sheet whereby a cell (D10) checks another cell (B10) for specific text (Hotel or Apartment)

    If it finds the text 'Hotel, it populates 'D10' with the content of 'E5', however if it finds the text 'Apartment', it populates 'D10' with the content of 'E6'

    This then needs to be repeated for the next 6 rows accordingly

    See screenshot https://prnt.sc/J8y9CPNTDuk5

    It seems like a very simple command but I am struggling to get it to work

    Any help would be greatly appreciated

  6. Hello! I'm trying to allocate a value to a reference with the "IF" formula, but it doesn't seem to work. To explain a bit further, I'm building a spreadsheet to help me calculate costs for dinners. I have a column with a list with 2 items. Based on the item selected (Menu 1 or Menu 2) I would like the next column to automatically add the allocated cost.

    For example, if I select Menu 1 in my column, I'd like the price to appear in the next column automatically.

    So far, I tried this one =IF(C3="Menu 1","39.50","49.50")

  7. Hello,
    I am trying to execute an if statement that will add up all the hours of an individual worker. I have a sheet where individual projects are recorded, with the date, the names of the workers who participated in the project and the hours they worked on the project. I would like the if statement to sum up all the values ​​in the hours column if there is an individual employee's name in the second column.
    I wrote the statement like this, but it doesn't work, it returns FALSE and I can't find a reason why it doesn't return sum of the hours.

    =IF(Gora!E2:E="Name of the worker";SUM(Gora!C2:C))

    Gora is the name of the sheet that contains information about the projects, since I do the totals of hours on another sheet.
    I can easily create such if statements in Excel, so I hope that they can also be used in Google Sheets.

    Thank you for your answer, Maša

  8. writing a macro and want to test for a number or blank cell, cant find a function. "ISNUMBER()" does not seem to work in a macro and I cant find the equivalent in the macro.

  9. Column A = 10,000
    In Column B, if column A is equal or less than 90,000 then the value in column B must be the value in A
    in Column B, if column A is greater than 90,000 then the value in column B must 90,000

  10. Hi,
    What to do if I want this scenario:
    Column A = 10,000

    in Column B = If column A is = 90,000, the value in column B must 90,000

  11. Hello,

    I'm making a budget spreadsheet and in column D I have spending categories, and in column E I want it to auto populate with Essential or Non-Essential based on the text in col. D. Example: "Groceries" and "Debt Payments" would be essential while everything else is non essential. I've tried variations of the IF THEN formula laid out above and read through all of the comments but in every variation of the formula I keep getting errors. So far I've only got two versions of this formula to work but it only has one spending category from col D included.

    =IF(D3="Debt Payments","Essential")

    =IF(D2="Debt Payments","Essential","Non Essential")

    To include more spending categories such as groceries, I've tried this:

    =IF((D4="Groceries","Essential");(D4="Debt Payments","Essential"))

    This formula says a parse error. I've also tried

    =IF(OR(D4="Groceries","Essential");(D4="Debt Payments","Essential")) and the same error happens. The same happens when I tried this

    =IF((D4="Groceries","Essential","Non Essential"),(D4="Debt Payments","Essential","Non Essential"))

    If I can't have col E populate and note that all other spending categories are non essential thats fine.

    Thank you in advance for your help!

    • I've tried this formula on multiple lines of the spreadsheet, thats why the cell number kept changing above.

      • Figured it out

        =IF(OR(D3="Debt Payments", D3="Groceries", D3="Mortgage"), "Essential","Non Essential")

  12. Hi there

    I need a formula:

    If A1 is blank, doesn't allow B2 to enter a value.

    Thanks in advance

    • Hi Shafiq,

      You need to use Data validation for this.
      Go to Data > Data validation. As a cell range, pick B2. As a criteria – the following custom formula: =A1<>""
      Pick Reject input on invalid data and hit Save.

  13. Thank you so much for this article! It's just what I was looking for.

    Is there a way to set a condition for if one cell contains certain text, then the number in the cell next to it (on the same row) is populated into a 3rd cell. I'm trying to sort a list of transactions into their budgeted buckets. Column A is the expense amount, Column B is which bucket the expense is budgeted in. I want to format other cells so that whenever Column B says "Bucket 1" the dollar value in Column A of that same row is inserted into these cells.

    Thank you!

  14. I am trying to combine a number from one cell, and some text into a second cell. For example, B2 has the number 6, and then I want B3 to say "6 out of 10". How do I get it to take the value from B2 and then add the "out of 10"?

  15. Hi,
    Thanks for the information. Your articles are all so helpful. I have a question. How do I do an IF statement for if a number is within a certain range. Let's say A1 may have any number from 0 to 20, and I need a formula that has one result based on the value in A1 being from 0 to 4, another result on 5-11, and another on 12-20. I'd rather not have to write out nested IF statements for every value from 0 to 20.

  16. Hello!

    If amount in each row is more than 10, the points should be added 1000 for each row. How to use formula in google sheet?

    Example;
    Row 1 col 1=10 attendance, row 2 col 2=45 attendance, row 3 col 3=25 attendance. The points to auto calculate should be 3000 points. how to auto calculate this? because sometimes the attendance could be lower than 10 which no points for it.

  17. This was so helpful. I spent most of my day searching how to do something and you had the answer. You guys are awesome !!

  18. Hello! I am currently trying to create a formula that will pull names from column C on a sheet titled Comm Log who have 3 numbers below 60 in 3 different columns. I have started with: =IF(Comm Log!M3<60,Comm Log!C3,"") but I am pretty stumped. Any help would be appreciated!

    Thank you!

    • Hello Carl,

      If I understand your task correctly, you need to incorporate the AND function to your IF formula. It will look at 3 different columns for the required number at the same time.

      You can also try our IF Formula Builder add-on. It lets you enter your conditions the user-friendly way and will gather everything into a formula for you.

  19. guys, i'm not that technical to this but i can get a few things done...

    i'm trying to get say,

    column

    if
    column A is 1 and B is 1 then C is value of money, say £100 and then
    which means i can also mate it
    if A is 0 and B is 1 then C is £50

    is there a way to give value to 1 and to 0 and maybe 2 ?

    and what could be the best formula for it ?

  20. How to use below functions in google sheet

    1. =IF(Values_Entered,-PMT(Interest_Rate/12,Loan_Years*12,Loan_Amount),"")
    2.=IF(Values_Entered,Loan_Years*12,"")
    3.=IF(Values_Entered,Number_of_Payments,"")
    4=IF(Values_Entered,SUMIF(Beg_Bal,">0",Extra_Pay),"")
    5=IF(Values_Entered,SUMIF(Beg_Bal,">0",Int),"")
    6=IF(Values_Entered,1,"")
    7=IF(Values_Entered,Loan_Amount,"")
    8=IF(Pay_Num"",Scheduled_Monthly_Payment,"")
    9=IF(Pay_Num"",Scheduled_Extra_Payments,"")
    10=IF(Pay_Num"",Sched_Pay+Extra_Pay,"")
    11=IF(Pay_Num"",Total_Pay-Int,"")
    12=IF(Pay_Num"",Beg_Bal*Interest_Rate/12,"")
    13=IF(Pay_Num"",Beg_Bal-Princ,"")

    • Hello Praba,

      I'm not sure I understand your question. Do you get any errors when entering these formulas to your Google sheet?

Post a comment



Thank you for your comment!
When posting a question, please be very clear and concise. This will help us provide a quick and relevant solution to
your query. We cannot guarantee that we will answer every question, but we'll do our best :)