SUMIFS in Google Sheets to sum cells with multiple criteria (AND / OR logic)

The tutorial shows how to use the SUMIFS function in Google Spreadsheets to sum cells with multiple criteria. You will find a handful of real-life SUMIFS formula examples with AND as wells as OR criteria.

Google Spreadsheets provide two functions to conditionally sum cells, SUMIF and SUMIFS. Regular visitors of our blog are already familiar with SUMIF that we covered last week, and today we are going to have a closer look at its plural version.

The difference between SUMIF and SUMIFS is as follows:

SUMIF can add up cells based on just one condition. If it is what you want, please check out this tutorial: SUMIF in Google Sheets.

SUMIFS can sum cells based on two or more conditions. Further on in this tutorial, you fill find a simple explanation of SUMIFS syntax and formula examples for different data types.

Google Sheets SUMIFS function - syntax & basic uses

The SUMIFS function is Google Sheets is designed to sum numbers with multiple conditions. Its arguments are as follows:

SUMIFS(sum_range, criteria_range1, criterion1, [criteria_range2, criterion2, …])

Where:

  • Sum_range(required) - the range to be summed.
  • Criteria_range1 (required) - the range of cells to be evaluated by criterion1.
  • Criterion1 (required) - the condition to be met by cells in criteria_range1.
  • Criteria_range2, criterion2, … (optional) - additional ranges and criteria to test.

SUMIFS in Google Sheets - 3 things to remember

Using SUMIFS formulas in Google spreadsheets is quite easy. To prevent most common errors, just remember these three simple facts:

  1. The SUMIFS function adds up only those cells that meet all conditions, i.e. all of the specified criteria are true for a cell. This is commonly referred to as AND logic.
  2. Sum range and all criteria ranges should be equally sized, i.e. have the same number of rows and columns, otherwise your SUMIFS formula will throw a #VALUE error.
  3. Depending on the nature of your conditions, build your criteria appropriately:
    • Text, wildcard characters and dates should be enclosed in quotation marks like "apples" or "*" or "4/19/2024".
    • Numbers and cell references are not enclosed in quotation marks when used on their own.
    • Logical operators with numbers, dates or text must be enclosed in double quotes like ">200", ">4/19/2024" or "<>apples" .
    • Logical operators used together with cell references and other functions require the quotes to begin a text string and ampersand to concatenate and finish the string off. For example: ">"&B1 or ">="&TODAY().

Okay, that's enough theory, let's build some useful formulas already!

How to sum with multiple criteria (AND logic)

When it comes to summing cells with multiple criteria, you may find a lot of different suggestions in Google groups and other user communities.

Let's say, you have a list of items in column A, amounts in column B, and delivery status in column C. Your goal is to get a total for a specific item with a certain delivery status, for example "apples" that are "delivered". How would you approach the task?

You may be surprised to know that many people still use array formulas for this purpose. For example, this one:

=ARRAYFORMULA(SUMPRODUCT((A2:A13="apples")*(C2:C13="delivered")*(B2:B13)))

What's wrong with this formula, you may ask me. Nothing except that it's excessively complex, difficult to understand and debug. It's like using a sledgehammer to crack a nut. Google Sheets SUMIFS function provides an easier way!

So, let's go ahead and define our arguments:

  • Column A should contain "apples". Assuming we have data in rows 2 to 13, our criteria_range1 is A2:A13, and criterion1 is "apples".
  • Column C should contain "delivered". Meaning, our criteria_range2 is C2:C13, and criterion2 is "delivered".
  • Numbers to sum are in column B, so our sum_range is B2:B13.

Putting the arguments together, we get this simple formula:

=SUMIFS(B2:B13, A2:A13, "apples", C2:C13, "delivered")

To add more flexibility, you can input both criteria in separate cells, say F1 and F2, and refer to those cells:

=SUMIFS(B2:B13, A2:A13, F1, C2:C13, F2)

As shown in the screenshot below, our SUMIFS formula works perfectly! SUMIFS in Google Sheets to sum cells with multiple criteria

Taking the example further, let's see how to use SUMIFS with other criteria types.

SUMIFS with logical operators

When your conditions are numbers or dates, use the comparison operators to express the criteria:

  • equal to (= or omitted)
  • not equal to (<>)
  • greater than (>)
  • less than (<)
  • greater than or equal to (>=)
  • less than or equal to (<=)

For example, to add up amounts in B2:B13 that are greater than or equal to 200 and delivered before 1-Apr-2024, use this formula:

=SUMIFS(B2:B13,B2:B13,">=200", C2:C13, "<4/1/2024")

In case you want to replace actual values with references to cells holding your criteria, please remember to enclose the logical operator in quotation marks and to concatenate the cell reference by using an ampersand:

=SUMIFS(B2:B13, B2:B13, ">="&F1, C2:C13, "<"&F2)

The screenshot below shows the result: SUMIFS formulas with logical operators

SUMIFS with other functions

In some situations, the conditions may depend on the results returned by some other functions. In this case, embed those functions in the criterion arguments of your SUMIFS formula.

As an example, let's sum "apples" that are "delivered". In other words, the delivery date is up to and including today, so we concatenate the "less than or equal to" operator (<=) with the TODAY() function:

=SUMIFS(B2:B13,A2:A13,F2,C2:C13,"<="&TODAY())

And get the following result: SUMIFS with other functions as criteria

SUMIFS with blank and non-blank cells

To sum numbers in one column depending on whether a cell in another column is empty or not empty, use one of the following criteria:

  • "=" to sum cells that are completely blank, i.e. contain absolutely nothing.
  • "" to sum empty cells including zero length strings.
  • "<>" to sum non-blank cells including zero length strings.

In case the Delivery date column contains some gaps, you may want to sum only those "apples" for which the delivery date is set, i.e. a cell in column C is not empty. The task can be accomplished with this formula:

=SUMIFS(B2:B13,A2:A13,"apples",C2:C13,"<>") SUMIFS to exclude empty cells

How to sum with multiple criteria (OR logic)

As you already know, by default, Google Sheets SUMIFS function works with AND logic - all conditions must match to be summed. In some situations, however, you may need to conditionally sum cells with OR logic, when any of the specified criteria is true. Below you will find a few possible ways to do this.

SUMIF with OR criterion (multiple criteria in the same column)

To sum cells with only a couple of criteria in the same column, you can simply add two SUMIF functions together.

For example, to sum the amounts in column B if column A is either "apples" or "bananas", use the SUMIF() + SUMIF() combination in its simplest form:

=SUMIF(A:A,"apples",B:B) + SUMIF(A:A,"bananas",B:B)

If you have three or more criteria, you may be looking for a more compact formula. For this, include the items in an array constant (aka inline array), use ArrayFormula to get a subtotal for each item, and wrap the whole construction into SUM() to add the subtotals together. For example:

=SUM(ARRAYFORMULA(SUMIF(A2:A13, {"apples", "bananas", "lemons"}, B2:B13)))

Instead of "hard-coding" the items in an array constant, you can enter them in individual cells, and include cell references in the array (in case of non-contiguous cells) or supply a range (in case of contiguous cells).

To better show you that our SUMIF formula works in exact accordance with the specified OR criteria, I've narrowed down the list to two items:

=SUM(ARRAYFORMULA(SUMIF(A2:A13, {E1, E2}, B2:B13)))

Or

=SUM(ARRAYFORMULA(SUMIF(A2:A13, E1:E2, B2:B13))) Sum cells with multiple OR criteria and output a total into one cell.

Instead of ArrayFormula, you can add up subtotals with the SUMPRODUCT function. For a short list of items, you can put it this way:

=SUMPRODUCT((A2:A13="apples") + (A2:A13="bananas"), B2:B13)

For multiple OR criteria (three or more items), you'd better use this syntax:

=SUMPRODUCT((A2:A13={"apples", "bananas"}) * B2:B13)

Replace the array elements with cells references, and you will get the most compact formula to sum cells with multiple OR criteria ever!

=SUMPRODUCT((A2:A13={E1, E2}) * B2:B13)

The screenshot below shows the result: A SUMPRODUCT formula to sum cells with OR criteria

Four different formulas, the same result. Which one to use is the matter of your personal preference :)

SUMIF with OR criterion and results in different cells

If you'd like to have a subtotal for each item in a separate cell, take an array SUMIF formula discussed above, adjust the references, and cut off the SUM() part:

=ARRAYFORMULA(SUMIF(A2:A13, {"apples", "bananas", "lemons"}, B2:B13))

This will give you a sum for each item in a separate cell as shown in the screenshot below: Sum with OR criteria and get sub-totals in separate cells.

For the sake of clarity, you enter the formula only in the leftmost cell (D2 in this example), and Google Sheets will put the results into as many cells as many items there are in your array constant. Just make sure you have enough empty cells to the right, otherwise, the result won't be expanded and the formula will turn into an error.

If you'd rather have subtotals in a column, then separate the array elements with semicolons to make a vertical array:

=ARRAYFORMULA(SUMIF(A2:A13, {"apples"; "bananas"; "lemons"}, B2:B13))

And the results will be output vertically in a column: Sum with OR criteria and output sub-totals in a column.

Tip. As usual, you can make your formula more flexible by replacing a hard-coded array with a range reference. That way, your users could type any items in the predefined cells, and you won't have to worry about updating your formula. For example, the formula shown in the screenshot above, can take the following shape:
=ARRAYFORMULA(SUMIF(A2:A13, D1:D3, B2:B13))

SUMIFS with OR criteria (multiple criteria in different columns)

This example shows how to sum numbers with several sets of conditions determined by the following logic.

  • Within each set, all conditions must be true (AND logic)
  • A cell is summed if any set of conditions is true (OR logic)

To make things easier to understand, please consider the following example. In our sample data set, supposing you want to sum amounts in column B if column A contains either "apples" OR "oranges" AND the delivery date in column C is "16-Mar-2018".

The most obvious way is to make two SUMIFS formulas to sum "apples" and "oranges" separately, and then add up the results:

=SUMIFS(B2:B13, A2:A13, "apples", C2:C13, "16-Mar-2024") +
SUMIFS(B2:B13, A2:A13, "oranges", C2:C13, "16-Mar-2024")

Or, you can enter your criteria in some cells, as shown in the screenshot below: SUMIFS with OR criteria

Regrettably, Google Sheets do not allow expressing multiple OR conditions using array constants, therefore we cannot make a plural version of our SUMIF with OR criteria formula. Luckily, there is another way to achieve the same result with a bit shorter formula - the SUPRODUCT function.

As an example, let's enter the desired delivery date (AND criterion) in F2 and items (OR criteria) in contiguous cells, say F1 and G1. Now, you can use the following formula to sum numbers in B2:B13 based on the above criteria:

=(SUMPRODUCT(--(C2:C13=F2), (--(ISNUMBER(MATCH(A2:A13, F1:G1, 0)))), B2:B13)) A SUPRODUCT formula to sum cells with multiple OR criteria

How this formula works

Working from the inside out, here's what you do:

  • Check if an item is "apple" or "orange":
    ISNUMBER(MATCH(A2:A13, F1:G1,0))

    As the result, you'll get an array or TRUE and FALSE values (TRUE if any of the specified criteria is met, FALSE if none of the criteria is met).

  • Compare a list of dates with the target date: C2:C13=F2

    Instead of a cell reference, you can enter the date directly in a formula by using DATEVALUE or DATE function. For example, C2:C13=DATEVALUE("3/16/2024") or C2:C13=DATE(2024,3,16)

    In this formula, however, you cannot compare a range with a date directly, like C2:C13="3/16/2024" or C2:C13="16-Mar-2024", because you'd be comparing a cell with a date to a text string. Google Sheets won't understand that and you will most likely get a zero result.

    If done correctly, this comparison will give you another array or TRUE and FALSE.

  • Use the double unary operator (--) to coerce both arrays of TRUE and FALSE to 1 and 0, respectively.
  • Supply the range to sum: B2:B13

SUMPRODUCT will first multiply the elements of 3 arrays (two arrays of 0's and 1's and an array of numbers in B2:B13), and then sum the products. Because multiplying by 0 always yields 0, only the cells that have 1 in the first two arrays will "survive". As the result, only the amounts with the specified delivery date and item names will be summed.

This is how you use SUMIFS in Google Sheets to sum cells with multiple conditions. To have a closer look at the formulas discussed in this tutorial, I invite you to open our SUMIFS Google Sheets Examples. I thank you for reading and hope to see you on our blog next week!

Spreadsheet with formula examples

SUMIFS Google Sheets Examples (make yourself a copy)

Table of contents

181 comments

  1. Hi Natalia,
    That worked perfectly!
    Thank you so much for the help. Much appreciated.

  2. Hi,
    I have check boxes in column D rows 32-160, Numbers in column E rows 32-160, and a drop down box with numbers in column I rows 32-160.
    In G19 I'm trying to enter a formula that will give me the number in each row of E multiplied by the number in corresponding row of I, if the check box in column D is checked. Then divide the resulting number by 16.
    Below is the formula that I have been playing with.
    =sumif(D32:D160, true, (E32*I32)/16:(E160*I160)/16)

    Thanks in advance,

      • Hi Natalia,
        I tried your formula but am still having issues.
        I see what your formula does. I think I missed one thing. I want the total of my results to be in G19.

        I get the following error message:
        Array result was not expanded because it would overwrite data in G20.

        • Hi Roger,

          The thing is that ArrayFormula processes the entire column and returns the result for each row at once. The contents of G20 (and below) doesn't allow the formula to return the outcome. Once you clear those cells, you will see the results. Try pasting the formula to an empty column – you'll see what the formula returns exactly.

          If you need the total of those, just wrap the formula in SUM:
          =SUM(ArrayFormula(IF($D$32:$D$160=TRUE,$E$32:$E$160*$I$32:$I$160,"")))

  3. i would like to add like this
    A B
    2 8
    5
    7
    6
    8
    10
    14
    15
    17
    12
    14
    i want to add top values with respect to cell reference B.if it is between 5-9 than add top 5 values in A, if B is between 11-15 than add top 10 values in A. Please help me.

    • Hello Rajveersingh,

      Is it only one top cell in column B that you need to check? Or will other cells in column B have numbers to check as well?

  4. Thank you! you're awesome!

  5. Hi there
    I am struggling with a formula, and hope you can help me to corect it.
    SUMIFS(K2:K46;F2:F46;Q2; OM(SUM(N2:N46)>0))
    I am need the formula to add all values in column K, for the names in column F which equals to the cell Q2 ----
    But only if at the same time all the related values in row N are >0 (with related values do I mean the rows with the same name as in Q2)....
    tried it with many alternatives, but did not succed, therefore did I try to summ up the values... And now do totaly give up and beg for your support

    Thanks a lot
    Fatos

    • I am happy with the first part of the equation (to summ/add up values in cloumn K if the text in column F = text in cell Q2
      but I really do not know how to combine, or even have a seperate equation for the second part, also same condition for text column F (=text in cell Q2) applies here for the range of rows in column N, but only if the value in those do not contain 0 aka are >0.

      Looking forward to hear a solution
      Thank you

        • Hi Natalia,

          Thank you! In the past couple of days I came also to the same formula, but unfortunately it gives me not the result I need. So my fault, I formulated wrongly. I was not very clear I am afraid. I want the formula to calculate the total, or give me a 'yes' if both equations are ok
          also F2:F46=Q2
          AND All (the related) rows in column N are >0
          So a 'yes' if both equations are met, a 'no' if there is even a single "0" in the rows of column N (but only for the rows there first part of equation (F2:F46;Q2)

          So sorry, I am trying now for over a week, and can simply not find the solution.
          Like written before, it is even ok if I need the 'split' the formula in 2-3 parts and do first one part in a cell, then another etc.... to reach the result

          Have a great day!

          • Hi Fatos,

            Would you mind sharing a small sample spreadsheet with us (support@apps4gs.com) with 2 sheets: a sample of your data and the result you expect to get? I kindly ask you to shorten the tables to 10-20 rows. If you have confidential information there, you can replace it with some irrelevant data, just keep the format.

            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 here. I'll look into it and do my best to help.

            • Hi Natalia,

              Thank you so much. I've shared the file "Exempel Fatos" with you
              Thanks again & kind regards

              • Hi Fatos,

                I've looked into your file. Here's a formula you can use next to your additional column with unique names:
                =IF(MINIFS($N$2:$N$18;$F$2:$F$18;$Q2)=0;"No";"Yes")

  6. Month Job Hrs
    20-Mar 40 10
    20-Mar 60 12
    20-Mar 10 5
    20-Mar 15
    20-Apr 50 12
    21-Apr 45 8
    22-Apr 10

    20-Mar 20-Apr
    No. of Job
    No. of Hr I need a formula that will sum values from column C with the following criteria
    1. sum all hours for particular month with values in column B

    • Hello Dante,

      Assuming the table covers 10 rows, here's the formula to sum all numbers for March:
      =ArrayFormula(SUMIFS(C2:C10,MONTH($A$2:$A$10),3,B2:B10,"<>"&""))

      You just need to adjust the ranges (to your number of rows) and change that number 3 that stands for March to a number of your month of interest.

  7. Hello! I love your content and I'm almost there with my formula :X but almost means still not.
    How to use those IF to create a formula like this.

    I have A, B, C.. columns
    I would like to make specific operation 'plus' or 'minus' bases on a cell indication.

    ANy idea?

  8. Awsomely explained (and in a "human" language!!) Excellent examples and super useful! Thanks!

  9. Help.

    It's just not working with the SUMIFS
    I've got this:
    =sumifs(uren!$E$4:$E ; uren!$A$4:$A ; C2 ; uren!$D$4:$D ; $A3 )

    uren!$E$4:$E = referring to other tab, the sum up the hours
    uren!$A$4:$A ; C2 = saying search for c2 this range on the other tab
    uren!$D$4:$D ; $A3 = saying search for c2 this range on the other tab

    What do I not see???? I checked for so many times. And the cells seem to be correct.
    It doesn't give an error, but keeps giving me a 0

    • Hello Wouter,

      You wrote: "uren!$D$4:$D ; $A3 = saying search for c2 this range on the other tab"
      Actually, it searches for A3 in this range. Could this be the problem? Change A3 to C2 or adjust whatever lies in A3.

  10. Hi Natalia and thank you for these helpful tutorials.
    I would like to compare two text columns (on seperate sheets) lets say column A:A on sheet1 with column J:J on sheet 2. I also have a column B:B on sheet 1 with numbers. So when there is a match between Sheet1!A:A and Sheet2!J:J i would like to calculate the sum of the B:B correspondant on sheet1 . I hope it's clear ^^
    Can you help me please ?

  11. I'm having trouble finding a way to sum the exact same cells across 100+ worksheets. In this case, I'd have the worksheets all named something similar for the first part of the string (i.e "Submissions_From_Field_"Initials) while Initials will vary for each submitter. Is there a way to concatenate the worksheet name so that all of these can be included when I sum B3 across all worksheets and then won't have to type and open 100+ worksheets to get sum across all?

  12. Hello,

    I received a formula from someone else, but I need to modify it by 1 cell.

    Original formula (works perfectly, but I'm unable to modify it myself):
    =SUM(ArrayFormula(if(mod(sequence(1,COLUMNS(E6:6)),6)=1,E6:6)))

    This formula was set up to SUM every 6th column, row 6 beginning from E6, but I need to modify it to begin at F6 instead. Simply changing the formula from "E6:6" to "F6:6" returns the "#ERROR!" sign and I can't figure this out.

    I'd like to SUM F6, L6, R6, X6, AD6, etc. (Every 6th column). Plus I'll be routinely adding and deleting columns by groups of 6.

    Columns A-C are permanent and are never deleted or added to.
    Ex. Deleting columns D-I, which would delete F6
    Ex. Adding columns AB-AG which would add AD6

    This formula worked perfectly for beginning at E6, but I cannot seem to simply change it to F6 as I'm met with "#ERROR!". What am I not understanding that makes it so "E6:6" cannot simply be replaced with "F6:6"?

    Any help is much appreciated and I can't thank you enough!

    • Hello,

      The formula works on my side if I simply replace E with F.
      You can try another formula instead:
      =SUMPRODUCT((MOD(COLUMN($A6:6)-COLUMN($A6)+1,6)=0)*($A6:6))

  13. Hi
    =SUM(E9:E13)-'Cash Paid Out'!E27 how do I add a % calc to the first bit? e.g. E24/100*19

    Many thanks

    Mike

    • Hi Mike,

      I'm sorry I'm not getting your exact task. Could you please specify what you're trying to count? A percentage of the total? Percentage increase? If so, you may find this blog post useful.
      Otherwise, please describe the task in more detail and I'll try to help.

  14. Thank you ... this article was a life-saver and really helped bring my GSheet to life.
    Appreciate the effort to educate others.

  15. Looking for help with this:
    IF SUM(H60,H75)>86.66, 43.33-SUM(H60,H75), 0)
    • where H60 to H75 are a row of decimal values that shouldn't exceed 86.66
    • if they exceed 43.33 the amount should be reduced by the difference (86.66-SUM(H60,H75))
    For some reason this formula doesn't work. Is it syntax?

  16. And Thank You

    • Hello Matt,

      we have a tutorial on the basics of drop-downs in Google Sheets here. You may gain some ideas for your task there.

      We could also try and help you out, but for that, I have to ask you to share your sample spreadsheet with us (support@4-bits.com) with your example data and the result you expect to get. Once you share the file, just confirm by replying here. Thank you.

  17. I have a Google sheets workbook that utilizes a cover sheet which picks up data from subsequent sheets within the book. On the cover sheet I want to add a drop-down menu that will change the data values depending on the item listen from the drop-down list.

    For example I want to see sales revenue data by country. Let's call it US, China, and Singapore. Within each sheet is a formula pulling in data for a hardcoded country, such as "US". I want to make this dynamic and changed based on the drop-down menu selection made. So if China is picked the SUMIFS will start looking for China.

    Thoughts?

  18. Dear ablebits.com Team,
    How to use sumifs () function between multiple Google sheet files ?!
    I want a file just to display the results from the data of other files!
    For example: File A will use SUMIFS functions to add data from files B, C, D ...
    Please help me!

  19. Thanks for this great explanation!
    I think this is close to what I need; however, I'm having trouble with a nested quantity.
    I have 3 sheets: Responses (Static Data), List (Static Data), Compiled (Static with Dynamic Values/formulas)
    All columns are ranges with the respective names.
    Responses (Static) contains the following "columns/ranges": RespDate, RespItem, RespQty
    All Responses data could be duplicate entries.
    List (Static) contains: ListItem, ListWeight
    All ListItem entries are unique
    Compiled (Static with Dynamic) contains: CompDate (Static), CompWeightTotal (Dynamic)
    All CompDate entries are unique
    I want to display the total weight of all items (CompWeightTotal) for each specific date (CompDate) in the Compiled Sheet.
    Step 1: Get the Sum of RespQty of each specific item for that specific date.
    Step 2: Multiply the sum of the Qty for that item for that specific date by the ListWeight.
    Step 3: Get the Sum of all weights for that specific date.

    I have part of Step 1; however, it is a general sum of RespQty: SUMIF(RespDate,A2,RespQty) where "A2" is a date. If 2 entries exist for this date and each entry had RespQty of 2, the returned value is 4.
    I need to figure out how to count the quantities of a specific item and then multiply this sum to the weight of the specific item found in "List".

    Maybe I should be using an array formula?

  20. Has google changed the way SUMIF works? Sheets now says the order of operators is (Range,Criteria,CriteriaRange) which is different from what's described here, and Sheets also says that it can only take three operators, so it won't accept a Criteria2 and CriteriaRange2.

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