Functions Making Decisions in Spreadsheets
Conditions
Spreadsheets have functions that allow varying calculations to happen. For instance, in January, you are unlikely to want to calculate the heat index, but you may wish to calculate a wind chill. Most computer programming, including spreadsheets relies on something called a Boolean expression, named after a mathematician named George Boole. Technically, a Boolean expression is something that evaluates to either TRUE or FALSE. We might view it as an answer to a yes-or-no question, with no ambiguities. FactCheck.org views it as a judgement about a particular statement.
Generally, when involving decisions, computer programming involves separating the possibilities into two paths, and a question that can be asked to determine which path to take.
For instance, someone may say "I am going to go buy potato chips. If Walmart has bags over 72 ounces, I will buy them there. If not, I will go buy chips at Food Lion." There is a clear situation that will determine this person's course of action. Somehow they need to ascertain whether Walmart sells bags of chips over 72 ounces. He/she may do this by calling and asking, or going there and finding out themselves, or asking a friend who has been there recently. In any case, this person will then know whether to buy at Walmart or at Food Lion.
The question being asked must have a clear answer. For instance, in English, we might say "If it is supposed to rain today, I will take an umbrella." Often implied with this is that the person will NOT take an umbrella if the forecast calls for sun. The "question" in this case: "Is it supposed to rain today?" We can answer this question by looking online for a weather forecast. However, if the forecast calls for a 50% chance of rain, what do you do? It must be assumed that there is a threshhold at which the person says "Yes, it is supposed to rain today." In the computer, there is no room for uncertainty. It is either true or false.
So what are the questions we can ask about values in spreadsheets? The most important ones are equality and inequality; they are defined as you learned them in math class, although the limitations of the keyboard means we sometimes write them a little differently:
Comparison | Math symbol | Spreadsheet operator |
---|---|---|
Less than | < | < |
Greater than | > | > |
Less than or equal to | ≤ | <= |
Greater than or equal to | ≥ | >= |
Equal to | = | = |
Not equal to | ≠ | <> |
If you use one of the spreadsheet operators in a cell's expression, the spreadsheet will display the boolean result. For instance, if you put =A4>=7 in a cell, that cell would show TRUE whenever the value in cell A4 is a number 7 or greater, and FALSE otherwise.
In addition, there are a number of functions whose computed result is boolean. Some of the more important to us are:
ISNUMBER(...) This function evaluates as TRUE if the argument is a number, and FALSE otherwise. For instance, ISNUMBER(A1) is TRUE if cell A1 contains the number 14, say, and false if it contains the word "fourteen."
ISBLANK(...) This function evaluates as TRUE if its argument is a blank cell, and FALSE otherwise. Note that a cell is not considered truly "blank" if it contains anything; if you go to (say) cell C2 and press the spacebar, then a cell with the expression =ISBLANK(C2) would now say FALSE.
Conditional computation with IF
IF(...) The IF function tests a condition and returns one of two values, depending on the result of the test. The condition must evaluate to true or false. The IF function takes three arguments. Its general form is
If the condition is true, the function evaluates the first value. If the condition is false, it evaluates the second value.
Side note: The third argument may be omitted. If so, the statement returns FALSE if the condition is false.
A sample use of IF() is to prevent division by zero. Consider the expression
If cell A4 contains 0, the expression results in a error, because division by 0 is undefined. Instead, write
Now, if A4 does not contain 0, the division is done. If it is 0, the division is skipped, and the word Error is displayed.
Example: Consider the scenario of a vendor near an performance stage. Below are 4 upcoming shows with the number of tickets sold and the length (in minutes) of each show.
A | B | C | D | |
---|---|---|---|---|
1 | Tickets | Show length | ||
2 | 500 | 60 | ||
3 | 650 | 75 | ||
4 | 425 | 50 | ||
5 | 300 | 80 | ||
6 |
Past experience shows that if a show is longer than an hour, the vendor will sell an average of $5 of food per ticket sold, but if the show is not longer than an hour, the vendor will only sell an average of $3 of food per ticket. We can have the spreadsheet help us figure out how much income to predict.
In Cell C2, type = IF( B2 > 60, 5*A2, 3*A2) and fill down to cell C5. The result:
A | B | C | D | |
---|---|---|---|---|
1 | Tickets | Show length | Anticipated income | |
2 | 500 | 60 | 1500 | |
3 | 650 | 75 | 3250 | |
4 | 425 | 50 | 1275 | |
5 | 300 | 80 | 1500 | |
6 |
Example: Now suppose a spreadsheet contains a list of employees and their annual salaries. Employee names are in column A, last year's salaries in column C, and this year's salaries in column D. However, some of the employees are new, and their old salary fields are blank. Here is the data.
A | B | C | D | E | |
---|---|---|---|---|---|
1 | Name | Old salary | New salary | ||
2 | |||||
3 | Aaron, Ann | 25000 | 26200 | ||
4 | Bolding, Bill | 30000 | |||
5 | Brown, Buddy | 45100 | 46000 | ||
6 | Dodge, Jane | 36000 | |||
7 | Emerson, Kim | 38200 | 39200 | ||
8 | Etheridge, Alice | 40000 | 40000 | ||
9 | Falconer, Faye | 32000 | 34500 | ||
10 | Godwyn, Gregory | 41000 | 42000 |
The problem is to calculate the percent of increase in salary for the continuing employees and put the results in column E. Leave the cell in column E blank if the employee is new.
To calculate the percent of increase,
- Find the increase by subtracting the old salary from the new: increase = new_salary – old_salary.
- Divide the difference by the old salary: increase / old_salary.
- Convert to a percent by multiplying by 100 .
For example, consider Ann Aaron's figures.
Proportion of increase = 1200 / 25000 = 0.048 ,
Percent of increase = 0.048 * 100 = 4.8 .
We can combine these into one line.
Using cell references, Ann's percent of increase is (D3-C3) / C3 * 100 . However, we should do this calculation only if cell C3 (the old salary) actually contains a number.
So we guard the calculation with an IF(). Put ISNUMBER(C3) as the condition, the expression for calculating the percent increase in the second argument, and "" in the third. If C3 contains a number, the calculation will be done, and the result displayed. Otherwise, a blank will be displayed. That is, put the following expression in cell E3.
Then click and drag this expression down column E. Here are the results.
A | B | C | D | E | |
---|---|---|---|---|---|
1 | Name | Old salary | New salary | Pct increase | |
2 | |||||
3 | Aaron, Ann | 25000 | 26200 | 4.8 | |
4 | Bolding, Bill | 30000 | |||
5 | Brown, Buddy | 45100 | 46000 | 1.9956 | |
6 | Dodge, Jane | 36000 | |||
7 | Emerson, Kim | 38200 | 39200 | 2.6178 | |
8 | Etheridge, Alice | 40000 | 40000 | 0 | |
9 | Falconer, Faye | 32000 | 34500 | 7.8125 | |
10 | Godwyn, Gregory | 41000 | 42000 | 2.4390 |
More complicated questions
There are times when the situation calls for a more complicated question. Some examples:AND(...) The AND function allows us to see if all specified conditions are met. Consider the following sheet, where each row represents a coupon. Column A is the type of product, and Column B is the discount amount for the coupon.
A | B | C | D | |
---|---|---|---|---|
1 | Store | .75 | ||
2 | Name | 1.25 | ||
3 | Name | .50 | ||
4 | Store | 1.50 | ||
5 | Store | 1.00 | ||
6 | Name | 1.00 |
A | B | C | D | |
---|---|---|---|---|
1 | Store | .75 | FALSE | |
2 | Name | 1.25 | FALSE | |
3 | Name | .50 | TRUE | |
4 | Store | 1.50 | FALSE | |
5 | Store | 1.00 | FALSE | |
6 | Name | 1.00 | TRUE |
A | B | C | D | |
---|---|---|---|---|
1 | Store | .75 | FALSE | .75 |
2 | Name | 1.25 | FALSE | 1.25 |
3 | Name | .50 | TRUE | 1.00 |
4 | Store | 1.50 | FALSE | 1.50 |
5 | Store | 1.00 | FALSE | 1.00 |
6 | Name | 1.00 | TRUE | 2.00 |
OR(...) The OR function allows us to see if at least one condition is met. For instance, imagine a climate-controlled building, where each room is its own "zone" with its own system of thermostat and sensors. The policy is that the A/C will be on if the temperature is high or the humidity is high. The temperature threshhold is 72, while the humidity threshhold is 60.
Consider the following small spreadsheet indicating the information on 5 rooms in the building.
A | B | C | D | |
---|---|---|---|---|
1 | Room # | Temperature | Humidity | |
2 | 100 | 70 | 50 | |
3 | 105 | 70 | 62 | |
4 | 200 | 73 | 55 | |
5 | 205 | 70 | 55 | |
6 | 210 | 75 | 65 |
In cell D2, we can put IF( OR(B2>72, C2>60), "ON", "OFF") and fill down to D6. The result would be:
A | B | C | D | |
---|---|---|---|---|
1 | Room # | Temperature | Humidity | |
2 | 100 | 70 | 50 | OFF |
3 | 105 | 70 | 62 | ON |
4 | 200 | 73 | 55 | ON |
5 | 205 | 70 | 55 | OFF |
6 | 210 | 75 | 65 | ON |
For rooms 100 and 205, neither condition is met, so the AC is off.
For rooms 105 and 200, one of the two conditions is met, so the AC is on.
For room 210, the temperature is above threshhold and the humidity level is also above threshhold. This is okay, because AT LEAST ONE is true.
Exercises
Exercises 1 through 4 use the following block of a spreadsheet.
A | B | C | D | E | F | G | H | I | |
---|---|---|---|---|---|---|---|---|---|
... | |||||||||
3 | Hours | 12 | 10 | 8 | 10 | 9 | 13 |
What is displayed by each function?
1. =IF(B3 <> 0, B3*6, "")
2. =IF(D3 <> 0, D3*6, "")
3. =AND( C3 > 10, G3 < 20)
4. =OR( C3 > 10, G3 < 20)5.Cell A1 contains a number. Write a expression for cell A2 that writes "positive" if the number in A1 is greater than 0 and "not positive" otherwise.
6.A number is in cell B1. Write an expression for cell B2 that puts half of B1's number into B2 if the number is greater than or equal to 0 and puts 0 there otherwise.
7.Cell A1 contains an employee's salary. Write an expression that will calculate the employee's parking fee as follows: For salaries less than $50,000, the parking fee is 1% of the salary. For salaries greater than or equal to $50,000, the fee is $500 plus 1.25% of the amount over $50,000.
8.Cell D5 contains a person's income. Write an expression that calculates a tax on the income, computed as follows. If the income exceeds $40,000, the tax is $800 plus 3% of the amount over $40,000. Otherwise, the tax is 2% of the income.
Credits and licensing
This article is by Robert P. Webber, Scott McElfresh, and Don Blaheta licensed under a Creative Commons BY-SA 3.0 license.
Version 2017-Jan-30 05:00