Table of contents
本教程展示了如何在谷歌电子表格中使用SUMIF函数对单元格进行有条件求和。 你将找到文本、数字和日期的公式例子,并学习如何用多个条件求和。
谷歌表格中的一些最好的函数是那些帮助你总结和分类数据的函数。 今天,我们要仔细看看其中的一个函数--SUMIF--一个用于有条件地对单元格求和的强大工具。 在研究语法和公式的例子之前,让我先说几个重要的话。
谷歌表有两个功能,可以根据条件将数字相加。 SUMIF 和 SUMIFS 前者只评估一个条件,而后者可以一次测试多个条件。 在本教程中,我们将只关注SUMIF函数,SUMIFS的使用将在下篇文章中介绍。
如果你知道如何在Excel桌面或Excel在线中使用SUMIF,那么在谷歌表格中使用SUMIF对你来说将是小菜一碟,因为两者本质上是一样的。 但先别急着关闭这个页面,你可能会发现一些你不知道的不明显但非常有用的SUMIF公式
谷歌表格中的SUMIF - 语法和基本用途
谷歌表的SUMIF函数是用来根据一个条件对数字数据进行求和的。 其语法如下。
SUMIF(range, criterion, [sum_range])在哪里?
- 范围 (required) - 应该由评估的单元格范围。 准则 .
- 准则 (required) - 要满足的条件。
- 总和_范围 (可选) - 对数字进行求和的范围。 如果省略,那么 范围 的总和。
作为一个例子,让我们做一个简单的公式,如果A列包含一个等于 "样本项目 "的项目,那么B列的数字将被求和。
为此,我们定义了以下论据。
- 范围 - 一个项目清单 - A5:A13。
- 准则 - 一个包含感兴趣的项目的单元格 - B1。
- 总和_范围 - 需要汇总的金额 - B5:B13。
把所有的论点放在一起,我们得到以下公式。
=SUMIF(A5:A13,B1,B5:B13)
而且它完全按照它应该的方式运作。
谷歌表的SUMIF例子
从上面的例子中,你可能会有这样的印象:在谷歌电子表格中使用SUMIF公式是如此简单,以至于你可以闭着眼睛做。 在大多数情况下,确实如此:)但仍然有一些技巧和非琐碎的使用,可以使你的公式更加有效。 下面的例子展示了一些典型的使用情况。 为了使这些例子更容易理解,我请你打开我们的样本SUMIF谷歌工作表。
带有文本标准的SUMIF公式(精确匹配)。
要将同一行中另一列有特定文字的数字相加,你只需在下面提供感兴趣的文字 准则 像往常一样,任何公式的任何参数中的任何文本都应该用 "双引号 "括起来。
例如,为了获得总数为 香蕉 ,你用这个公式。
=SUMIF(A5:A13,"bananas",B5:B13)
或者,你可以把标准放在某个单元格中,并引用该单元格。
=SUMIF(A5:A13,B1,B5:B13)
这个公式非常清楚,不是吗? 现在,你如何得到所有项目的总数? 不包括 对于这一点,请使用 不等于 经营者。
=SUMIF(A5:A13,"bananas",B5:B13)
如果在一个单元格中输入了 "排除项",那么你就用双引号("")将不等于运算符括起来,并通过使用安培号(&)将运算符和单元格引用连接起来。 例如。
=SUMIF (A5:A13,""&B1, B5:B13)
下面的截图展示了 "如果等于就求和 "和 "如果不等于就求和 "公式的操作。
请注意,谷歌表的SUMIF会搜索指定的文本 正是 在这个例子中,只有 香蕉 奖金数额相加。 绿香蕉 和 金手指香蕉 要用部分匹配来求和,请使用通配符,如下例所示。
带有通配符的SUMIF公式(部分匹配)。
当你想在一列中的单元格包含特定文本或字符的情况下对另一列中的单元格进行求和时,作为 部分单元格内容 ,在你的标准中包括以下通配符之一。
- 问号(?)来匹配任何单一字符。
- 星号(*)用于匹配任何序列的字符。
例如,要对各种香蕉的数量进行汇总,请使用这个公式。
=SUMIF(A5:A13,"*bananas*",B5:B13)
你也可以将通配符与单元格引用一起使用。 为此,将通配符用引号括起来,并与单元格引用相连接。
=SUMIF(A5:A13, "*"&B1& "*", B5:B13)
无论是哪种方式,我们的SUMIF公式都会把所有香蕉的数量加起来。
要匹配一个实际的问号或星号,请在其前面加上倾斜符号(~)字符,如"~?"或"~*"。
例如,要对同一行中A列中有星号的B列中的数字进行求和,使用这个公式。
=sumif(a5:a13, "~*", b5:b13)
你甚至可以在某个单元格中输入星号,比如B1,然后将该单元格与tilde字符连接起来。
=SUMIF(A5:A13, "~"&B1, B5:B13)
谷歌表格中对字母敏感的SUMIF
默认情况下,Google Sheets中的SUMIF不会看到小写字母和大写字母的区别。 要强制它以不同方式处理大写和小写字母,请将SUMIF与FIND和ARRAYFORMULA函数结合使用。
sumif(arrayformula( find(" 文本 ", range)), 1, sum_range)假设您在A5:A13中有一个订单号列表,在C5:C13中有相应的金额,同一订单号出现在几行中。 您在某个单元格(如B1)中输入目标订单ID,并使用以下公式返回订单总数。
=sumif(arrayformula(find(b1, a5:a13)),1, c5:c13)
这个公式如何运作
为了更好地理解该公式的逻辑,让我们把它分解成有意义的部分。
最棘手的部分是 范围 参数:ARRAYFORMULA(FIND(B1, A5:A13))
你使用区分大小写的FIND函数来寻找准确的订单ID。 问题是,普通的FIND公式只能在一个单元格内搜索。 要在一个范围内搜索,需要一个数组公式,所以你将FIND嵌套在ARRAYFORMULA中。
当上述组合找到一个完全匹配的字符时,它会返回1(第一个找到的字符的位置),否则会出现#VALUE错误。 因此,你唯一要做的是将对应于1的金额相加。 为此,你将1放入 准则 参数,而C5:C13在 总数_范围 争论。"完成!"。
数字的SUMIF公式
要对满足某个条件的数字进行求和,可以在SUMIF公式中使用一个比较运算符。 在大多数情况下,选择一个合适的运算符不是问题。 将它正确地嵌入到标准中可能是一个挑战。
如果大于或小于的总和
要将源数与某一特定数字进行比较,请使用以下逻辑运算符之一。
- 大于 (>)
- 小于 (<)
- 大于或等于 (>=)
- 小于或等于 (<=)
例如,要将B5:B13中大于200的数字相加,使用这个公式。
=SUMIF(B5:B13, ">200")
请注意标准的正确语法:一个以比较运算符为前缀的数字,整个结构用引号括起来。
或者,你可以在某个单元格中输入数字,并将比较运算符与单元格引用连接起来。
=SUMIF(B5:B13, ">"&B1, B5:B13)
你甚至可以在不同的单元格中同时输入比较运算符和数字,并将这些单元格连接起来。
以类似的方式,你可以使用其他逻辑运算符,如:。
如果大于或等于200,则为总和。
=SUMIF(B5:B13, ">=200")
如果小于200,则为总和。
=SUMIF(B5:B13, "<200")
如果小于或等于200,则为总和。
=SUMIF(B5:B13, "<=200")
总和如果等于
要对等于一个特定数字的数字进行求和,你可以使用等号(=)与数字一起使用,或者省略等号,只将数字包含在 准则 争论。
例如,要将B列中的数量与C列中的数量相加等于10,可使用以下任何一个公式。
=sumif(c5:c13, 10, b5:b13)
或
=sumif(c5:c13, "=10", b5:b13)
或
=sumif(c5:c13, b1, b5:b13)
其中B1是包含所需数量的单元格。
总和如果不等于
要对指定数字以外的数字求和,请使用 不等于 操作员()。
在我们的例子中,要把B列中除10以外的任何数量的金额加到C列中,请使用这些公式之一。
=sumif(c5:c13, "10", b5:b13)
=SUMIF(C5:C13, ""&B1, B5:B13)
下面的屏幕截图显示了结果。
谷歌表的日期SUMIF公式
要根据日期标准有条件地求和,你也可以使用比较运算符,如上面的例子所示。 关键的一点是,应该以Google Sheets能够理解的格式提供日期。
例如,要对2018年3月11日之前的交货日期的B5:B13中的金额进行求和,可以用以下方法之一建立标准。
=SUMIF(C5:C13, "<3/11/2018", B5:B13)
=SUMIF(C5:C13, "<"&DATE(2018,3,11), B5:B13)
=SUMIF(C5:C13, "<"&B1, B5:B13)
其中B1是目标日期。
如果你想根据以下情况对单元格进行有条件求和 今天的日期 ,包括TODAY()函数在 准则 争论。
作为一个例子,让我们做一个公式,把今天的交货量加起来。
=sumif(c5:c13, today(), b5:b13)
进一步看这个例子,我们可以找到过去和未来的交货总量。
在今天之前。 =SUMIF(C5:C13, "<"&TODAY(), B5:B13)
今天之后。 =SUMIF(C5:C13, ">"&TODAY(), B5:B13)
基于空白或非空白单元格的总和
在许多情况下,如果某一列的对应单元格为空或不为空,你可能需要对该列的数值进行求和。
为此,在谷歌表的SUMIF公式中使用以下标准之一。
如果空白,则为总和。
- "=" 对完全空白的单元格进行求和。
- "" 对空白单元格进行求和,包括那些包含零长度字符串的单元格。
如果不是空白,则为总和。
- "" 将包含任何数值的单元格相加,包括零长度字符串。
例如,要对设定了交货日期的金额进行汇总(C列的一个单元格是 不空 ),使用这个公式。
=sumif(c5:c13, "", b5:b13)
为了得到没有交货日期的金额总数(C列的一个单元格是 空的 ),使用这个。
=sumif(c5:c13, "", b5:b13)
谷歌表的SUMIF与多个标准(OR逻辑)。
谷歌表格中的SUMIF函数旨在根据一个标准将数值相加。 要对多个标准进行求和,可以将两个或多个SUMIF函数加在一起。
例如,要将 苹果 和 橙子 含量,利用这个公式。
=SUMIF(A6:A14, "苹果", B6:B14)+SUMIF(A6:A14, "橙子", B6:B14)
或者,将项目名称放在两个单独的单元格中,比如B1和B2,并将这些单元格分别作为一个标准。
=sumif(a6:a14, b1, b6:b14)+sumif(a6:a14, b2, b6:b14)
请注意,这个公式的工作原理类似于SUMIF,其中包括 或逻辑性 - 如果至少有一个指定的标准得到满足,它就会对数值进行求和。
在这个例子中,如果A列等于 "苹果 "或 "橘子",我们就在B列中添加数值。 换句话说,SUMIF()+SUMIF()的工作原理就像下面这个伪公式(不是真正的公式,它只是演示了逻辑!):SUMIF(A:A, "苹果 "或 "橘子", B:B)。
如果你想用 和逻辑 ,即在满足所有指定条件的情况下将数值相加,使用谷歌表的SUMIFS函数。
谷歌表SUMIF--需要记住的事情
现在你已经知道了谷歌表中SUMIF函数的基本原理,对你已经学到的知识做一个简短的总结可能是一个好主意。
1.SUMIF只能评估一个条件
SUMIF函数的语法只允许有一个 范围 ,一个 准则 和一个 总数_范围 ...到 多个标准的总和 ,要么把几个SUMIF函数加在一起(OR逻辑),要么使用SUMIFS公式(AND逻辑)。
2.SUMIF函数是不区分大小写的
如果你正在寻找一个能够区分大写和小写字符的大小写敏感的SUMIF公式,请将SUMIF与ARRAYFORMULA和FIND结合使用,如本例所示。
3.提供同等大小的范围和sum_range
事实上,在 总数_范围 参数仅指定要求和的范围的最左上角的单元格,其余区域由 范围 争论。
换句话说,SUMIF(A1:A10, "apples", B1:B10)和SUMIF(A1:A10, "apples", B1:B100)都会对B1:B10范围内的值进行求和,因为它的大小与 范围 (A1:A10)。
因此,即使你错误地提供了一个错误的总和范围,谷歌表仍然会正确地计算你的公式,只要在左上方的单元格中 总数_范围 是正确的。
尽管如此,我们仍然建议提供同等大小的 范围 和 总数_范围 以避免错误和防止不一致的问题。
4.注意SUMIF标准的语法
要想让你的Google表SUMIF公式正常工作,必须以正确的方式表达标准。
- 如果该标准包括 文本 , 通配符 或 逻辑运算符 后面是数字、文字或日期,请用引号括住该标准。 例如:"。
=SUMIF(A2:A10, "apples", B2:B10)
=sumif(a2:a10, "*", b2:b10)
=SUMIF(A2:A10, ">5")
=SUMIF(A5:A10, "apples", B5:B10)
- 如果该标准包括一个 逻辑运算符 和一个 单元参考 或其他 功能 例如,使用引号来开始一个文本字符串,使用安培号(&)来连接并结束字符串。
=SUMIF(A2:A10, ">"&B2)
=SUMIF(A2:A10, ">"&TODAY(), B2:B10)
5.如果需要,用绝对的单元格引用锁定范围
如果你打算在以后复制或移动你的SUMIF公式,请通过使用绝对的单元格引用(带$符号)来固定范围,比如在SUMIF($A$2:$A$10, "apples", $B$2:$B$10)。
这就是在谷歌表格中使用SUMIF函数的方法。 要想仔细看看本教程中讨论的公式,欢迎你打开我们的SUMIF谷歌表格样本。 感谢你的阅读,希望下周在我们的博客上见到你!