Excel Formulas

Test Two Conditions At Once With The AND Function In Excel

AND lets one formula test two or more conditions at once and returns TRUE only when every test passes. It is a function, not a word between two tests, and fed a whole range it gives one answer, not one per row.

October 26, 2026

A single IF tests one thing. The AND function lets one formula test two or more things at once, so a bonus can depend on both a sales target and a renewal, and a row only passes when every test is true.

In fact, AND returns plain TRUE or FALSE, and its natural home is inside IF. OR is its twin: it returns TRUE when any one of the tests passes, and NOT flips whichever answer you give it.

However, the function is not the English word, and people type it as if it were. That one habit produces a formula Excel refuses to accept, so it is the first thing this card clears up.

The AND function.

So give it each test as a separate argument, with a comma between them.

Sheet1!D2
=AND(B2>100,C2="Yes")

Ana sold 120 and renewed, so both tests pass and it returns TRUE. Ben renewed but sold only 80, so it returns FALSE, because one failed test is enough to fail the whole AND. Microsoft’s reference allows up to 255 of these tests in one call.

Next, put it inside IF to turn TRUE and FALSE into something readable.

Sheet1!F2
=IF(AND(B2>100,C2="Yes"),"Bonus","")

That writes Bonus beside Ana and Eve and leaves the other rows empty. Likewise =OR(B2>100,C2="Yes") returns TRUE for everyone except Dee, who neither sold over 100 nor renewed.

AND is a function, not a word.

Then look at the version most people type first.

Sheet1!F2 (rejected)
=IF(B2>100 AND C2="Yes","Bonus","")

Excel refuses that formula and shows its error dialog, because AND is not an operator you can place between two tests. The tests go inside the brackets as separate arguments, and the whole AND(…) becomes the first argument of IF.

Also, feed it a range and you get one answer, not one per row. =AND(B2:B6>100) returns FALSE for the whole column as soon as any one row fails, so it cannot replace a row-by-row IF. As a result, a text value on its own is no test at all: =AND("Yes") returns #VALUE!, which Microsoft’s reference confirms for a range with no logical values in it.

Result of the AND function.

Before. Five sales figures and a renewal flag, with the three test columns empty.

Excel sheet before the AND formula: a Name column of Ana, Ben, Cy, Dee and Eve beside Sales of 120, 80, 200, 50 and 150 and a Renewed column of Yes, Yes, No, No and Yes, with the Both, Either and Bonus columns empty

After. AND passes two rows, OR passes four, and IF turns the two passes into the word Bonus.

The AND function in Excel: the formula bar reads =AND(B2>100,C2="Yes") and returns TRUE for Ana, with FALSE for Ben, Cy and Dee, TRUE for Eve, and Bonus written only beside the two TRUE rows
Sheet1!D2 to F6
A2:C6 -> Ana 120 Yes | Ben 80 Yes | Cy 200 No | Dee 50 No | Eve 150 Yes

=AND(B2>100,C2="Yes")                   ->  TRUE   (Ana; Eve is the other TRUE)
=AND(B3>100,C3="Yes")                   ->  FALSE  (Ben: 80 fails the first test)
=OR(B3>100,C3="Yes")                    ->  TRUE   (Ben renewed)
=OR(B5>100,C5="Yes")                    ->  FALSE  (Dee fails both)
=IF(AND(B2>100,C2="Yes"),"Bonus","")    ->  Bonus
=AND(B2:B6>40)                          ->  TRUE   (one answer for five rows)
=AND(B2:B6>100)                         ->  FALSE
=AND("Yes")                             ->  #VALUE!

So reach for AND when a row must pass every test, and for OR when one is enough. For the IF it usually sits inside, see returning a value by condition with IF, and when the tests are a ladder of alternatives rather than a set that must all hold, IFS checks them in order instead.

References: