How to use Excel COUNTIFS and COUNTIF with multiple criteria

The tutorial explains how to use COUNTIFS and COUNTIF formulas with multiple criteria in Excel based on AND as well as OR logic. You will find a number of examples for different data types - numbers, dates, text, wildcard characters, non-blank cells and more.

Of all Excel functions, COUNTIFS and COUNTIF are probably most often mixed up because they look very much alike and both are purposed for counting cells based on the specified criteria.

The difference is that COUNTIF is designed for counting cells with a single condition in one range, whereas COUNTIFS can evaluate different criteria in the same or in different ranges. The aim of this tutorial is to demonstrate different approaches and help you choose the most efficient formula for each particular task.

Excel COUNTIFS function - syntax and usage

The Excel COUNTIFS function counts cells across multiple ranges based on one or several conditions. The function is available in Excel 365, 2021, 2019, 2016, 2013, Excel 2010, and Excel 2007, so you can use the below examples in any Excel version.

COUNTIFS syntax

The syntax of the COUNTIFS function is as follows:

COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2]…)
  • criteria_range1 (required) - defines the first range to which the first condition (criteria1) shall be applied.
  • criteria1 (required) - sets the condition in the form of a number, cell reference, text string, expression or another Excel function. The criteria defines which cells shall be counted and can be expressed as 10, "<=32", A6, "sweets".
  • [criteria_range2, criteria2]… (optional) - these are additional ranges and their associated criteria. You can specify up to 127 range/criteria pairs in your formulas.

In fact, you don't have to remember the syntax of the COUNTIF function by heart. Microsoft Excel will display the function's arguments as soon as you start typing; the argument you are entering at the moment is highlighted in bold. The syntax of the Excel COUNTIFS function

Excel COUNTIFS - things to remember!

  1. You can use the COUNTIFS function in Excel to count cells in a single range with a single condition as well as in multiple ranges with multiple conditions. If the latter, only those cells that meet all of the specified conditions are counted.
  2. Each additional range must have the same number of rows and columns as the first range (criteria_range1 argument).
  3. Both contiguous and non-contiguous ranges are allowed.
  4. If the criteria is a reference to an empty cell, the COUNTIFS function treats it as a zero value (0).
  5. You can use the wildcard characters in criteria - asterisk (*) and question mark (?). See this example for full details.

How to use COUNTIFS and COUNTIF with multiple criteria in Excel

Below you will find a number of formula examples that demonstrate how to use the COUNTIFS and COUNTIF functions in Excel to evaluate multiple conditions.

How to count cells with multiple criteria (AND logic)

This scenario is the easiest one, since the COUNTIFS function in Excel is designed to count only those cells for which all of the specified conditions are TRUE. We call it the AND logic, because Excel's AND function works this way.

Formula 1. COUNTIFS formula with multiple criteria

Suppose you have a product list like shown in the screenshot below. You want to get a count of items that are in stock (value in column B is greater than 0) but have not been sold yet (value is column C is equal to 0).

The task can be accomplished by using this formula:

=COUNTIFS(B2:B7,">0", C2:C7,"=0")

And the count is 2 ("Cherries" and "Lemons"): Counting cells with multiple criteria based on AND logic

Formula 2. COUNTIFS formula with two criteria

When you want to count items with identical criteria, you still need to supply each criteria_range / criteria pair individually.

For example, here's the right formula to count items that have 0 both in column B and column C:

=COUNTIFS($B$2:$B$7,"=0", $C$2:$C$7,"=0")

This COUNTIFS formula returns 1 because only "Grapes" have "0" value in both columns. COUNTIFS formula with identical criteria

Using a simpler formula with a single criteria_range like COUNTIFS(B2:C7,"=0") would yield a different result - the total count of cells in the range B2:C7 containing a zero (which is 4 in this example).

How to count cells with multiple criteria (OR logic)

As you have seen in the above examples, counting cells that meet all of the specified criteria is easy because the COUNTIFS function is designed to work this way.

But what if you want to count cells for which at least one of the specified conditions is TRUE, i.e. based on the OR logic? Overall, there are two ways to do this - by adding up several COUNTIF formulas or using a SUM COUNTIFS formula with an array constant.

Formula 1. Add up two or more COUNTIF or COUNITFS formulas

In the table below, supposing you want to count orders with the "Cancelled" and "Pending" status. To have it doen, you can simply write 2 regular Countif formulas and add up the results:

=COUNTIF($C$2:$C$11,"Cancelled") + COUNTIF($C$2:$C$11,"Pending") Counting cells that meet any of the specified criteria

In case each of the functions is supposed to evaluate more than one condition, use COUNTIFS instead of COUNTIF. For example, to get the count of "Cancelled" and "Pending" orders for "Apples" use this formula:

=COUNTIFS($A$2:$A$11, "Apples", $C$2:$C$11,"Cancelled") + COUNTIFS($A$2:$A$11, "Apples", $C$2:$C$11,"Pending") Another formula to count cells with multiple criteria and OR logic

Formula 2. SUM COUNTIFS with an array constant

In situations when you have to evaluate a lot of criteria, the above approach is not the best way to go because your formula would grow too big in size. To perform the same calculations in a more compact formula, list all of your criteria in an array constant, and supply that array to the criteria argument of the COUNTIFS function. To get the total count, embed COUNTIFS inside the SUM function, like this:

SUM(COUNTIFS(range,{"criteria1","criteria2","criteria3",…}))

In our sample table, to count orders with the status "Cancelled" or "Pending" or "In transit", the formula would go as follows:

=SUM(COUNTIFS($C$2:$C$11, {"cancelled", "pending", "in transit"})) A more compact formula to count cells with multiple criteria and OR logic

In a similar manner, you can count cells based on two or more criteria_range / criteria pairs. For instance, to get the number of "Apples" orders that are "Cancelled" or "Pending" or "In transit", use this formula:

=SUM(COUNTIFS($A$2:$A$11,"apples",$C$2:$C$11,{"cancelled","pending","in transit"})) Counting cells with multiple criteria_range / criteria pairs and OR logic

You can find a few more ways to count cells with OR logic in this tutorial: Excel COUNTIF and COUNTIFS with OR conditions.

How to count numbers between 2 specified numbers

By and large, COUNTIFS formulas for numbers fall into 2 categories - based on several conditions (explained in the above examples) and between the two values you specify. The latter can be accomplished in two ways - by using the COUNTIFS function or by subtracting one COUNTIF from another.

Formula 1. COUNTIFS to count cells between two numbers

To find out how many numbers between 5 and 10 (not including 5 and 10) are contained in cells C2 through C10, use this formula:

=COUNTIFS(C2:C10,">5", C2:C10,"<10") A COUNTIFS formula to count numbers between X and Y

To include 5 and 10 in the count, use the "greater than or equal to" and "less than or equal to" operators:

=COUNTIFS(B2:B10,">=5", B2:B10,"<=10")

Formula 2. COUNTIF formulas to count numbers between X and Y

The same result can be achieved by subtracting one Countif formula from another. The first one counts how many numbers are greater than the lower bound value (5 in this example). The second formula returns the count of numbers that are greater than the upper bound value (10 in this case). The difference between the first and second number is the result you are looking for.

  • =COUNTIF(C2:C10,">5")-COUNTIF(C2:C10,">=10") - counts how many numbers greater than 5 and less than 10 are in the range C2:C10. This formula will return the same count as shown in the screenshot above.
  • =COUNTIF(C2:C10, ">=5")-COUNTIF(C2:C10, ">10") - the formula counts how many numbers between 5 and 10 are in the range C2:C10, including 5 and 10.

How to use cell references in COUNTIFS formulas

When using logical operators such as ">", "<", "<=" or ">=" together with cell references in your Excel COUNTIFS formulas, remember to enclose the operator in "double quotes" and
add an ampersand (&) before a cell reference to construct a text string.

In a sample dataset below, let's count "Apples" orders with amount greater than $200. With criteria_range1 in cells A2:A11 and criteria_range2 in B2:B11, you can use this formula:

=COUNTIFS($A$2:$A$11, "Apples", $B$2:$B$11, ">200")

Or, you can input your criteria values in certain cells, say F1 and F2, and reference those cells in your formula:

=COUNTIFS($A$2:$A$11, $F$1, $B$2:$B$11, ">"&$F$2)

Please notice the use of absolute cell references both in the criteria and criteria_range arguments, which prevents the formula from being broken when copied to other cells. Using cell references in COUNTIFS formulas

For more information about the use of an ampersand in COUNTIF and COUNTIFS formulas, please see Excel COUNTIF - frequently asked questions.

How to use COUNTIFS with wildcard characters

In Excel COUNTIFS formulas, you can use the following wildcard characters:

  • Question mark (?) - matches any single character, use it to count cells starting and/or ending with certain characters.
  • Asterisk (*) - matches any sequence of characters, you use it to count cells containing a specified word or a character(s) as part of the cell's contents.

Tip. If you want to count cells with an actual question mark or asterisk, type a tilde (~) before an asterisk or question mark.

Now let's see how you can use a wildcard char in real-life COUNTIFS formulas in Excel. Suppose, you have a list of projects in column A. You wish to know how many projects are already assigned to someone, i.e. have any name in column B. And because we are learning how to use the COUNTIFS function with multiple criteria, let's add a second condition - the End Date in column D should also be set.

Here is the formula that works a treat:

=COUNTIFS(B2:B10,"*",D2:D10,"<>"&""))

Please note, you cannot use a wildcard character in the 2nd criteria because you have dates rather that text values in column D. That is why, you use the criteria that finds non-blank cells: "<>"&"" The COUNTIFS formula to count entries containing any text in one column and non-blank cells in another column.

COUNTIFS and COUNTIF with multiple criteria for dates

The COUNTIFS and COUNTIF formulas you use for dates are very much similar to the above formulas for numbers.

Example 1. Count dates in a specific date range

To count the dates that fall in a certain date range, you can also use either a COUNTIFS formula with two criteria or a combination of two COUNTIF functions.

For example, the following formulas count the number of dates in cells C2 through C10 that fall between 1-Jun-2014 and 7-Jun-2014, inclusive:

=COUNTIFS(C2:C9, ">=6/1/2014", C2:C9, "<=6/7/2014")

=COUNTIF(C2:C9, ">=6/1/2014") - COUNTIF(C2:C9, ">6/7/2014") The COUNTIF formula with 2 conditions to count dates in a specific date range

Example 2. Count dates with multiple conditions

In the same manner, you can use a COUNTIFS formula to count the number of dates in different columns that meet 2 or more conditions. For instance, the below formula will find out how many products were purchased after the 20th of May and delivered after the 1st of June:

=COUNTIFS(C2:C9, ">5/1/2014", D2:D9, ">6/7/2014") The COUNTIF formula to count dates with multiple conditions

Example 3. Count dates with multiple conditions based on the current date

You can use Excel's TODAY() function in combination with COUNTIF to count dates based on the current date.

For example, the following COUNTIF formula with two ranges and two criteria will tell you how many products have already been purchased but not delivered yet.

=COUNTIFS(C2:C9, "<"&TODAY(), D2:D9, ">"&TODAY()) The COUNTIF formula to count dates with multiple conditions based on the current date

This formula allows for many possible variations. For instance, you can tweak it to count how many products were purchased more than a week ago and are not delivered yet:

=COUNTIFS(C2:C9, "<="&TODAY()-7, D2:D9, ">"&TODAY())

This is how you count cells with multiple criteria in Excel. I hope you will find these examples helpful. Anyway, I thank you for reading and hope to see you on our blog next week!

2035 comments

  1. In process of creating a 'master sheet' with sheet one including the formulas, and sheet 3 being the sheet where the data exported will be pasted into. Then sheet 1 will display the results as a summary so I'm pulling the data from sheet 3 onto sheet 1 based on certain criteria.

    D Contains the location - hall, court, room, upper, lower etc..
    E Contains the age - 6,7,8,9, etc...
    I Contains a range of various activities in the one field - rugby club, football club, handball, tennis club, dance club..etc...

    I want to pull one age group (6) from every location except two only (Hall and Court) only IF if I contains certain activities (Football, Tennis or Rugby) from sheet 3, into sheet 1. I enter the below formula in the cell I want the data in sheet one, and it returns zero. Zero is incorrect as when filtered there IS fields that are age 6, location other than Hall or Court that have done either football tennis or rugby.

    =SUM(COUNTIFS(Sheet3!$E:$E,"6",Sheet3!D:D,"*Hall*",Sheet3!D:D,"*Court*",Sheet3!I:I,{"*football*","*tennis*","*rugby*"}))

    • Hello!
      Without seeing your data it is difficult to give you any advice. Perhaps the age in column E is written as a number. Replace the text "6" with the number 6 (without quotes).

  2. Hi. My data range (A1:B300) has reference numbers in A, and text lines in B. In C5, I type a word, and I want to see in D5 the row(s) from the range having the word. COUNTIF tells me the number of times the word occurs in the range. Is there a formula I can use in D5, so that I can avoid having to use data filter on the range. Thanks.

    • Hello!
      To get conditionally from a range of rows, you can use the FILTER function. You can find instructions and examples in this article.
      I hope it’ll be helpful. If something is still unclear, please feel free to ask.

  3. Hi - I need help with creating a tally based on date and time frames. I am trying to calculate how many flights are within a specific day in a column, but within each day, I need it broken up in intervals of time. For instance, I need every hour of each day. Let's say I am looking at 300 flight itineraries (all arriving within a 3 day period 4/2/2022, 4/3/2022, and 4/4/2022). I need to look at each day specifically and be able to break down how many people arrive at for example, 1 - 1:59 pm, 2 - 2:59 pm, 3 - 3:59 pm and so forth. I understand how to do the count ifs for a time frame, but how is there a way to include the conditional for the date.

    • Hello!
      If the cell contains the date and time in the mm-dd-yyyy hh:mm:ss format, then you can write the condition something like this:

      ">="&(DATE(2022,4,2)+TIME(13,0,0))"

      Please check out this article to learn how to insert time using the Excel TIME function.

  4. Hello, I'm trying to figure out how to find matches between a cell containing multiple comma separated numbers and another cell containing multiple comma separated numbers.

    Here is my example, cell 1 contains 12345, 12346, 12347, 12348,
    cell 2 contains 54321, 12345, 65432, 23456, 12347

    I want to do two things -
    1. provide a true/false 1/0 answer in the cell if any number in cell 1 shows up in cell 2
    2. in another cell count the number of matches between cell 1 and cell 2

    I have had to break out the imported data and separate it out by commas manually, and it is time consuming. I figured I would reach out to people who are much smarter than me to get some insights.

    Thanks for your time,

    Jeremy

  5. Hi,

    I'm trying to count data in an entire table based on a date, then return the total of this. This table has multiple rows for data from 01/2/3/4 of January and will continue.

    The formula works whenever I change the date however, I want to count of data from another column, based on each [date].

    Note these are all in the same table with rows appended each day.

    For clarification I want to return the total of [Date] + return me total of [Status] on [Date]

  6. Hi,
    I was working on some calculations but unable to find the solution.
    I want to count the number of days on which the minimum balance is maintained

    For Example

    On 1.12.21 on 2.12.21 on 3.12.21 Minimum Balance Remarks - Formula required
    75 70 50 60 (Min balance maintained - 2 days)
    50 60 45 70 (Min balance maintained - 0 days)
    45 20 35 10 (Min balance maintained - 3 days)

    • Hello!
      Based on your description, it is hard to completely understand your task. However, I’ll try to guess and offer you the following formula:

      =COUNTIF(A1:C1,">"&D1)

      If this is not what you wanted, please describe the problem in more detail.

  7. Greeting,
    I have datasheet i want to count the Age categories, related local and female.
    Mean how many local female we have above 19 years to 48 years. below formula can't working.
    =COUNTIFS('Datasheet'!E36:E139,"female",'Datasheet'!G36:G139,"19-48",'Datasheet'!H36:H139,"local")

    • Hi!
      Instead of G36:G139,"19-48", use two conditions: G36:G139,">19", G36:G139,"<48"
      I'm not seeing your data, but I think that will be helpful.

  8. Hi

    I am creating a spreadsheet for a sales tracker. I have a weekly tab (x13) and I have multiple drop down options (Current account, saver, mortgage etc) in one column and the next over the date the account was opened. I am trying to total up in another tab the total number of say current accounts keyed but only once the week number has been added else it doesnt count. So the other tab has a list of all the product options with number opened for a total of 13 weeks (quarterly total). Help please! So stuck!

    • Hello!
      Unfortunately, without seeing your data it is difficult to give you any advice. You need to use COUNTIFS as recommended in this article. The criteria are the invoice date in the date range (there is an example above) and the product code.

  9. I have a CSV file downloaded with info about orders. I want Excel to somehow count the number of orders of each type per person.
    i.e. Sherry ordered 3 Chicken pies, and 2 Butter Tarts,
    Joanne ordered 2 Butter Tarts,
    Marie ordered 2 Beef pies and 2 Butter tarts
    and Bill ordered 3 Beef Pies, 3 Chicken etc.

    Currently it looks like this: (I didn't know how to attach a screen shot so I just separated the column info by /

    Order number 1/Sherry/chicken/address/phone #
    Order number 2/Sherry/chicken/address/phone #
    Order number 3/Sherry/chicken/address/phone #
    Order number 4/Sherry/butter tart/address/phone #
    Order number 5/Sherry/butter tart/address/phone #
    Order number 6/Joanne/butter tart/address/phone #
    Order number 7/Joanne/butter tart/address/phone #
    Order number 8/Marie/beef/address/phone #
    Order number 9/Marie/beef/address/phone #
    Order number 10/Marie/butter tart/address/phone #
    Order number 11/Marie/butter tart/address/phone #
    Order number 12/Bill/beef/address/phone #
    Order number 13/Bill/beef/address/phone #
    Order number 14/Bill/beef/address/phone #
    Order number 15/Bill/chicken/address/phone #
    Order number 16/Bill/chicken/address/phone #
    Order number 13/Bill/chicken/address/phone #

    The way that the Excel sheet works now, I have to count the number of items of each kind per person... Too much work when there are many items (sometimes we have up to 50) and too big a margin for error (If we miscount or count someone else's order by accident.)

    Any ideas how I can make this work? (I'd be ok if each item that they ordered had it's own line beside the name.

  10. Alexander,

    Sorry for the additional email. My formula below worked, but when I applied to all months in the year, it wasn’t counting correctly for each month. When I applied the correction below (and adjusted the date range for each month), it counted correctly.

    =SUM(COUNTIFS(daterange,">=02/01/2021",daterange,"<03/01/2021",schoolrange,{"school 1","school 1","school 2", "school 2","school 3","school 3"},subjectrange,"Art",projectstatusrange,{"finished","nearly finished","finished","nearly finished","finished","nearly finished"}))

  11. Alexander
    Thank you for your help. Prior to requesting, I did look through the prior chats before requesting advice. Thank you for the formula provided. Initially the formula was not picking up any values, but was returning a 0. I tried substituting named ranges for the cell ranges in the provided formula and that did the trick.

    =SUM(COUNTIFS(daterange, ">=01/01/2021",daterange, "<02/01/2021",schoolrange,{"school 1","school 2"},subjectrange,"art",projectstatusrange,{"finished","nearly finished"}))

    Where daterange is the specified cell range for the dates, schoolrange is the specified cell range for school numbers, subjectrange is the cell range for the various subjects, and projectstatusrange is the cell range for the various project status’.

    I appreciate your expertise and help. I use and reference your blog and find it to be one of the better and more responsive blogs.
    Best regards-

  12. Good day,
    I’m struggling with a Countifs formula and could use your help.
    I have two tabs-formula is in tab/sheet 1, data table is in tab/sheet 2.
    I’m trying to determine the number of times one of two project status appear based on certain conditions:
    On tab/sheet 2, the data is set up as follows:
    Column 1 is School 1, School 2, School 3
    Column 2 are the subjects: Art, math, science, language, etc…
    Column 3 is the project status: not started, started, in process, nearly finished, finished
    Column 4 is the date of the entry/status update
    I am trying to write the a formula that accomplishes the following:
    The number of projects between date range >=01/01/2021 to <02/01/2021 for just the the art classes from either school 1 or school 2 that are in either a “nearly finished” or “finished” status

    I’ve tried using if(and combined with a count if, but I continue to get #value errors.
    Any help is greatly appreciated.

    • Hi!
      Have you tried the ways described in this blog post? I hope you have studied the recommendations in the tutorial above. It contains answers to your question.
      Something like this formula:

      =SUM(COUNTIFS(D2:D9, ">=01/01/2021", D2:D9, "<02/01/2021",A2:A9,{"school 1","school 2"},B2:B9,"art",C2:C9,{"finished","nearly finished"}))

  13. I have to calculate child spaces for a month. I used S as sick. We allow 5 sick days per child per month to be counted towards compensation, anything over 5 days is not counted. The formula I used to count days for present was =COUNTIF($B11:$AF12,"P"). But I cant figure out the S days to minus the 5 allowable days. Any help would be greatly apprecied

    • Hi!
      I’m not sure I got you right since the description you provided is not entirely clear. However, it seems to me that the formula below will work for you:

      IF(COUNTIF($B11:$AF12,”S”)>5,5,COUNTIF($B11:$AF12,”S”))

      If this is not what you wanted, please describe the problem in more detail.

  14. Hey there,

    I have a data sheet with columns indicating characteristics that are labelled with numbers to indicate which characteristic. 1: Black 2: Yellow 3: Brown 4: White 1: Cat 2: Dog

    I would like to find out which cells in the spreadsheet have the two matching characteristics.
    eg. "black" "dog" So, the end goal is to have 1 number added to the answer box for each person in the survey who owns a dog that is black.

    =countif(Data!R1:R99, "2", Data!Q1:Q99, "1")

    Would you care to tell me what is wrong about my formula?

      • Thank you so much!

        The different between plural and non plural is what was holding me back.
        This has helped me immensely and I am happy that you responded promptly.

  15. Hello There,

    I have multiple columns, example:
    Code ; Environment; value
    xyz; Dev;1
    xyz; SIT;1
    xyz; PAT;1
    ABC;DEV;1
    PQR;PROD;1

    Now, i need to take only values which has Dev and either SIT or PROD or PAT, flag them True. if it is just Dev only they flag them False.

    Need your guidance. thank you

  16. Hi,
    When using dates as the criteria arguments, do you have always specify in US date numerical format rather than UK equivalent?
    I live in the UK and so the convention we use to convert 1st June 2015 to numerical format is "01/06/2015". In the USA this would be 06/01/2015.

    Does excel functions only work with the later?

  17. Thank you so much for this!

  18. Hi, please help! I have 2 columns, Column A "Date" and B is status if "Passed/In Progress".
    I need to count the number of "Passed" using a date range provided in a cell. Here's a sample:

    COLUMN A. Column B. Column C. Column D Column E
    10/1/2021 Passed 10/1/2021 10/30/2021 2
    10/5/2021 In-Progress
    10/10/2021. Passed
    11/01/2021 Passed

    • My sample seems wrong didn't know spaces will be deleted after posting.

      Column A "Date", Column B "Passed/InProgress", Column C and D "Date Range", Column E "Count Passed"

      I need to know what formula am I going to use on Column E. Thank you so much!

      • I just found out the answer it's:

        =COUNTIFS($B$2:$B$6,">="&$C$2,$B$2:$B$6,"<="&$D$2,$A$2:$A$6,"Passed")

        Thanks!

  19. Hi, I'm not sure how to put this in the formula and not even sure what function I need to use, can someone help me, please?

    I have 2 sheets named and with column names below

    Sheet 1 Name: Est Sheet (with data)
    Column A: Facility Name (with data)
    Column B: Department (with data)
    Column C: Est Asset (with data)
    Column D: Actual Asset (data needs to come from Sheet 2)

    Sheet 2 Name: Asset Located
    Column A: Asset Name
    Column B: Facility Name
    Column C: Department

    I would like to pull out the total numbers of asset per facility and department from Sheet 2 and show it on Column D of Sheet 1.

    How do I count the number of assets on each facility and department and pull out the sum to Column D of Sheet 1?

    Help, please. Thank you!

    • Hello!
      I kindly ask you to have a closer look at the article above.
      Counting values according to two conditions:

      =COUNTIFS(Sheet2!B2:B100,Sheet1!A2,Sheet2!C2:C100,Sheet1!B2)

  20. can someone help me to get below result, count # of material based on two conditions.
    detail
    work order Date material
    100 12-Oct ab
    200 13-Oct cd
    100 12-Oct ef
    result
    work order Date material
    100 12-Oct 2

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 :)