*The tutorial explains how to use Excel's COUNTIF and COUNTIFS functions to count cells with multiple OR as well as AND conditions.*

As everyone knows, Excel COUNTIF function is designed to count cells based on just one criterion while COUNTIFS evaluates multiple criteria with AND logic. But what if your task requires OR logic - when several conditions are provided, any one can match to be included in the count?

There are a few possible solutions to this task, and this tutorial will cover them all in full detail. The examples imply that you have a sound knowledge of the syntax and general uses of both functions. If not, you may want to begin with revising the basics:

Excel COUNTIF function - counts cells with one criteria.

Excel COUNTIFS function - counts cells with multiple AND criteria.

Now that everyone is on the same page, let's dive in:

This section covers the simplest scenario - counting cells that meet any (at least one) of the specified conditions.

The easiest way to count cells that have one value or another (Countif *a* or *b*) is to write a regular COUNTIF formula to count each item individually, and then add the results:

COUNTIF(*range*, *criterion1*) + COUNTIF(*range*, *criterion2*)

As an example, let's find out how many cells in column A contain either "apples" or "bananas":

`=COUNTIF(A:A, "apples") + COUNTIF(A:A, "bananas")`

In real-life worksheets, it is a good practice to operate on ranges rather than entire columns for the formula to work faster. To spare the trouble of updating your formula every time the conditions change, type the items of interest in predefined cells, say F1 and G1, and reference those cells. For example:

`=COUNTIF(A2:A10, F1) + COUNTIF(A2:A10, G1)`

This technique works fine for a couple of criteria, but adding three or more COUNTIF functions together would make the formula too cumbersome. In this case, you'd better stick with one of the following alternatives.

Here's a more compact version of the SUMIF with OR conditions formula in Excel:

SUM(COUNTIF(*range*, {*criterion1*, *criterion2*, *criterion3*, …}))

The formula is constructed in this way:

First, you package all the conditions in an array constant - individual items separated by commas and the array enclosed in curly braces like {"apples", "bananas', "lemons"}.

Then, you include the array constant in the *criteria* argument of a normal COUNTIF formula: COUNTIF(A2:A10, {"apples","bananas","lemons"})

Finally, warp the COUNTIF formula in the SUM function. It is necessary because COUNTIF will return 3 individual counts for "apples", "bananas" and "lemons", and you need to add those counts together.

Our complete formula goes as follows:

`=SUM(COUNTIF(A2:A10,{"apples","bananas","lemons"}))`

If you'd rather supply your criteria as **range references**, you'll need to enter the formula with Ctrl + Shift + Enter to make it an array formula. For example:

`=SUM(COUNTIF(A2:A10,F1:H1))`

Please notice the curly braces in the screenshot below - it is the most evident indication of an array formula in Excel:

Another way to count cells with OR logic in Excel is to use the SUMPRODUCT function in this way:

SUMPRODUCT(1*(*range* ={*criterion1*,* criterion2*, *criterion3*, …}))

To better visualize the logic, this could also be written as:

SUMPRODUCT((*range*=*criterion1*) + (*range*=*criterion2*) + …)

The formula tests each cell in the range against each criterion and returns TRUE if the criterion is met, FALSE otherwise. As an intermediate result, you get a few arrays of TRUE and FALSE values (the number of arrays equals the number of your criteria). Then, the array elements in the same position are added together, i.e. the first elements in all the arrays, the second elements, and so on. The addition operation converts the logical values to numbers, so you end up with one array of 1's (one of the criteria matches) and 0's (none of the criteria matches). Because all the criteria are tested against the same cells, there is no way any other number could appear in the resulting array - only one initial array can have TRUE in a specific position, others will have FALSE. Finally, SUMPRODUCT adds up the elements of the resulting array, and you get the desired count.

The first formula works in a similar manner, with the difference that it returns one 2-dimentional array of TRUE and FALSE values, which you multiply by 1 to convert the logical values to 1 and 0, respectively.

Applied to our sample data set, the formulas take the following shape:

`=SUMPRODUCT(1*(A2:A10={"apples","bananas","lemons"}))`

Or

`=SUMPRODUCT((A2:A10="apples") + (A2:A10="bananas") + (A2:A10="lemons"))`

Replace the hardcoded array constant with a range reference, and you will get even a more elegant solution:

`=SUMPRODUCT(1*( A2:A10=F1:H1))`

When working with large data sets that have multi-level and cross-level relations between elements, chances are that you will need to count cells with OR and AND conditions at a time.

As an example, let's get a count of "apples", "bananas" and "lemons" that are "delivered". How do we do that? For starters, let's translate our conditions into Excel's language:

- Column A: "apples" or "bananas" or "lemons"
- Column C: "delivered"

Looking from another angle, we need to count rows with "apples and delivered" OR "bananas and delivered" OR "lemons and delivered". Put this way, the task boils down to counting cells with 3 OR conditions - exactly what we did in the previous section! The only difference is that you'll utilize COUNTIFS instead of COUNTIF to evaluate the AND criterion within each OR condition.

It is the longest formula, which is the easiest to write :)

`=COUNTIFS(A2:A10, "apples", C2:C10, "delivered") + COUNTIFS(A2:A10, "bananas", C2:C10, "delivered")) + COUNTIFS(A2:A10, "lemons", C2:C10, "delivered"))`

The screenshot below shows the same formula with cells references:

`=COUNTIFS(A2:A10, K1, C2:C10, K2) + COUNTIFS(A2:A10, L1, C2:C10, K2) + COUNTIFS(A2:A10, M1,C2:C10, K2)`

A more compact COUNTIFS formula with AND/OR logic can be created by packaging OR criteria in an array constant:

`=SUM(COUNTIFS(A2:A10, {"apples","bananas","lemons"}, C2:C10, "delivered"))`

When using a range reference for the criteria, you need an array formula, completed by pressing Ctrl + Shift + Enter:

`=SUM(COUNTIFS(A2:A10,F1:H1,C2:C10,F2))`

`=SUM(COUNTIFS(A2:A10, {"apples","*bananas*","lemons"}, C2:C10, "delivered"))`

In a similar manner, you can build a formula to count cells based on other criteria types. For example, to get a count of "apples" or "bananas" or "lemons" that are "delivered" and the amount is greater than 200, add one more criteria range/criteria pair to COUNTIFS:

`=SUM(COUNTIFS(A2:A10, {"apples","*bananas*","lemons"}, C2:C10, "delivered", B2:B10, ">200"))`

Or, use this array formula (entered via Ctrl + Shift + Enter):

`=SUM(COUNTIFS(A2:A10,F1:H1,C2:C10,F2, B2:B10, ">"&F3))`

In the previous example, you have learned how to test one set of OR conditions. But what if you have two or more sets and you are looking to get a total of all possible OR relations?

Depending on how many conditions you need to handle, you can use either COUNTIFS with an array constant or SUMPRODUCT with ISNUMBER MATCH. The former is relatively easy to build, but it is limited to only 2 sets of OR conditions. The latter can evaluate any number of conditions (a reasonable number, of course, given Excel's limit to 255 arguments and 8192 characters to the total formula length), but it may take some effort to grasp the formula's logic.

When dealing with only two sets of OR criteria, just add one more array constant to the COUNTIFS formula discussed above.

For the formula to work, one minute but critical change is needed: use a **horizontal array** (elements separated by commas) for one criteria set and **vertical array** (elements separated by semicolons) for the other. This tells Excel to "pair" or "cross-calculate" the elements in the two arrays, and return a two-dimensional array of the results.

As an example, let's count "apples", "bananas" or "lemons" that are either "delivered" or "in transit":

`=SUM(COUNTIFS(A2:A10, {"apples", "bananas", "lemons"}, B2:B10, {"delivered"; "in transit"}))`

Please note the semicolon in the second array constant:

Because Excel is a 2-dimentional program, it is not possible to construct a 3-dimentional or 4-dimentuional array, and therefore this formula only works for two sets of OR criteria. To count with more criteria, you will have to switch to a more complex SUMPRODUCT formula explained in the next example.

To count cells with more than two sets of OR criteria, use the SUMPRODUCT function together with ISNUMBER MATCH.

For example, let's get a count of "apples", "bananas" or "lemons" that are either "delivered" or "in transit" and are packaged in either "bag" or "tray":

`=SUMPRODUCT(ISNUMBER(MATCH(A2:A10,{"apples","bananas","lemons"},0))*`

ISNUMBER(MATCH(B2:B10,{"bag","tray"},0))*

ISNUMBER(MATCH(C2:C10,{"delivered","in transit"},0)))

In the heart of the formula, the MATCH function checks the criteria by comparing each cell in the specified range with the corresponding array constant. If the match is found, it returns a relative position of the value if the array, N/A otherwise. ISNUMBER converts these values to TRUE and FALSE, which equate to 1 and 0, respectively. SUMPRODUCT takes it from there, and multiplies the arrays' elements. Because multiplying by zero gives zero, only the cells that have 1 in all the arrays survive and get summed.

Th screenshot below shows the result:

This is how you use the COUNTIF and COUNTIFS functions in Excel to count cells with multiple AND as well as OR conditions. To have a closer look at the formulas discussed in this tutorial, you are welcome to download our sample Excel COUNTIF OR/AND workbook. I thank you for reading and hope to see you on our blog next week!

## 19 Responses to "Excel COUNTIF and COUNTIFS with OR conditions"

Can you help me with a formula?

I have some student test scores and I'd like to create a formula that tells me how many students in each class got above the year average, and how many got below. But, there are some absent students, so I'd like to only count the scores above 0.

This is my current formula for above average scorers in class 1: =COUNTIF(AD7:AD45,">"&$AD$287)

This is my current formula for below average scorers in class 1:

=COUNTIF(AD7:AD45," =AVERAGEIF(AD7:AD285,"0") ]

These formulas work, but the below average formula also includes scores for students who were absent and didn't take the test (so they include 0 scores and I'd like to change it).

My guess was that I should include COUNTIF(AD7:AD45,""&"0") somewhere in the formula, but every way I try isn't working. Do I need to do something different, like some sort of OR condition?

Thank you in advance,

Jonathan

Can you help me with a formula?

I have some student test scores and I'd like to create a formula that tells me how many students in each class got above the year average, and how many got below. But, there are some absent students, so I'd like to only count the scores above 0.

This is my current formula for above average scorers in class 1: =COUNTIF(AD7:AD45,">"&$AD$287)

This is my current formula for below average scorers in class 1:

=COUNTIF(AD7:AD45," =AVERAGEIF(AD7:AD285,"0") ]*

These formulas work, but the below average formula also includes scores for students who were absent and didn't take the test (so they include 0 scores and I'd like to change it).

My guess was that I should include COUNTIF(AD7:AD45,""&"0") somewhere in the formula, but every way I try isn't working. Do I need to do something different, like some sort of OR condition?

Thank you in advance,

Jonathan

Jonathan:

You might be overthinking this.

Try using:=COUNTIF(AD7:AD45,">0")

Hi,

I may be under the wrong impression but, technically, all of your suggested solutions seem to work only as an AND fuction. That being said, your suggestions don't work well with my need of the real OR function in countif formula. Allow me to explain my problem.

I have a list of phrases in column A, position numbers in column B and another position numbers in column C. Now, I need to count all the phrases in column A that have the position <10 either in B or in C. The thing is that some phrases have both position numbers <10 and thus are being counted twice when using your solutions. That is why I need OR, not AND.

Surely, I could use filters to list and count those phrases "manually", but I need to make this process automated, as I am making basically the whole excel fill itself up based on my edits in one single sheet.

Thank you for your future suggestions.

Hi Jan,

A simple solution that comes to mind is to create a helper column (you can hide it or move to the end of the worksheet) and pull the smaller of the 2 values there: =MIN(B2:C2)

And then, you use COUNTIF on the helper column, e.g.=COUNTIF(D2:D100,"<"&10)

Hi,

Could you please help me to create a formula for the scenario mentioned below.

Column A contains various product names like Apple, Cherry, Banana, Grapes etc every product has more than 5 count in Column A

And Column B has only words like Bought and Sold for every other products

I want to create the formula to every product either of these

1. How many sold and bought for grapes, banana, apples etc

2. Which trade is greater is it Bought or Sold for every products.

Thanks,

Allen.

I know this is a long shot however, I am currently having issues with creating a formula to read the following.

Name score1 score2 score3

smith 58 55 61

in the example above I need to create a formula that will count the number of cells w/ a score below 60. however, this issue I am having is I need the formula to only count this as a multiple failed event by one person and not read the formula as two cells <60, if that makes sense.

I have tried creating multiple formulas and cannot seem to get this to only count as one multiple failed event for the individual.

Some examples of formula I have been using are

=countif(E198:E262,"<60",G198:G262,"<60",I198:I262,"<60"). This formula only seems to count every score below 60. I need the formula to count multiple scores under 60 as 1 multiple failed event.

Hi Brandon,

And if a certain person has one or more scores under 60, what do you want to return? Simply 1, or something else?

Hi there!

I've been trying to formulate my sheet to count between numbers.

For example I have a host of different variables from 1.50 to around 100 and I wish to count them in sections, to explain further I want to count YES, NO VOID between 1.50 - 1.66 / 1.72 - 1.80 / 1.83 - 2.00 / 2.10 - 3.50 / 4.00 - 6.

I've tried to replicate these above formulas but most only count words and not numbers between ranges.

Can anyone provide any help?

Thank you

why not working countif(range,and()) ?

Hello.

A very good post and may have a solution for me as well. I've tried myself but could not get through.

So, I have 2 types of data in my table:

- some columns use only text and

- other columns use dates or text.

I need "COUNTIFS" with "OR" functionality for Date fields and WILDSCARDS (">=" or "<=" or "Blank"). For example, I need to use COUNTIFS with few OR and AND conditions in "Cell G1":

- ("Column B = Cell F1" OR "Column B = Blank"))

A bit messed explanation, but my difficulty is to add WILDCARDS ">=" or "<=" or "Blank" in your proposed formula.

Your help is highly appreciated in advance!

did a repost since part of my post was not reflected above.

Hello.

A very good post and may have a solution for me as well. I've tried myself but could not get through.

So, I have 2 types of data in my table:

- some columns use only text and

- other columns use dates or text.

I need "COUNTIFS" with "OR" functionality for Date fields and WILDSCARDS (">=" or "<=" or "Blank"). For example, I need to use COUNTIFS with few OR and AND conditions in "Cell G1":

- ("Column B = Cell F1" OR "Column B = Blank"))

A bit messed explanation, but my difficulty is to add WILDCARDS ">=" or "<=" or "Blank" in your proposed formula.

Your help is highly appreciated in advance!

Thanks so much for this tutorial, it was hugely helpful and very easy to follow!

I found that I didn't need SUM for the leave chart I created counting letters in a column. I just used:

{=COUNTIF(C$6:C$56,$AW$59:$AW$66)}

And it gave me the correct summed number. Worked in 2016 and 2010.

Nope, definitely need SUM!

Good morning,

I was hoping you could help me with a table i'm trying to create. I want to "reverse" the countifs formula i've got to get the results it has counted (as if it was a pivot table).

My formula looks like this: =SUM(COUNTIFS('worksheet1'!$B:$B,"Criteria1",'worksheet2'!$W:$W, {"criteria2","criteria3"}))

As you'll see this is multiple criteria (criteria1 AND (criteria 2 OR 3)).

What I then need to do is something like a complex vlookup to find the rows that the formula has counted and then pick specific cells to return.

Imagine my table having 25 columns. My criteria are in columns 2 (B) and 23 (W) and I want a formula that will help me return values from column 1 (A) for any row counted with the countif formula mentioned earlier.

Hope that makes sense.

Hello, i am working with work orders. Specifically the comments technicians write about the work orders and i am counting specific words used like "hot", "cold", "temperature", etc.

example:

STORE COMMENT

1 Unit is too hot

2 Unit moves from cold to hot

3 Temperature not holding

4 Temperature is too cold

5 Unit is too cold

I am using "* *" in my countif to search within text, like "*hot*" would come back as "2". my question is, how can i do a countif, countifs, or sum to count "*cold*" + "*hot*" + "*temperature*" without double counting comments that contain two of those key words. For example, with the above data, i want the count to be "5" but if i follow the above instructions it would count store 2 and store 4 twice, giving me a total of "7". any thoughts?

Hello, thank you for your detailed explanations of the functions. I am currently trying to count using count if plus OR and none of the above mentioned seemed to be working. Im trying to count if column A has Yes and if either column B or C are blank, unfortunately right now it does a double count if both B and C are blank. I would be grateful for your help. Unfortunately there is no minimum value and it has to be blank

Hello,

Can you help me with formula?

Assuming the range A1:A20, I need to count the number of cells that:

1- Not Blank

2- Does not equal "Red" or "Blue" or "Green"

3- Does not contain Numbers

No matter what I try, I still get the wrong count.

Can anyone help me please?

Thanks!