Tracks
要在 Excel 中使用 SUMIF(),输入 =SUMIF(range, criteria, [sum_range]),其中 range 是要检查的单元格区域,criteria 是要匹配的条件,sum_range 是要相加的单元格区域。这样,您无需手动筛选或逐行相加,就能汇总满足特定条件的数值。
本文将详细拆解 SUMIF() 的语法,带您完成一个分步示例,对比 SUMIF() 与 SUMIFS()、COUNTIF() 等相关函数,并讲解最容易让初学者困惑的错误。
什么是 Excel 中的 SUMIF() 函数?
SUMIF() 是一个用于求和的 Excel 函数,但只会对满足您设定条件的数字求和。通俗地说,您告诉 Excel 要找什么,它只会把符合条件的数值相加。
简单的 SUM() 公式 会把一个区域里的所有内容相加。而 SUMIF() 更加“挑剔”。它会逐个检查单元格是否满足条件,只对通过的项求和。不匹配的单元格会被 Excel 跳过。
例如,您可以在以下情境中使用该公式:
- 您经营一家店,只想知道某个单品带来的销售额。
- 您记录开支,只想汇总某一类目(如杂货或房租)。
- 您管理团队,只想汇总某位员工的工时。
SUMIF() 在这些场景都很合适,因为您并不关心总和,而只想要其中的一部分。
SUMIF() 语法
SUMIF() 公式的结构如下:
=SUMIF(range, criteria, [sum_range])
在该语法中:
-
range:Excel 用来检查条件的单元格组。Excel 会在这里判断是否匹配。 -
criteria:告诉 Excel 在该区域中要寻找的内容。可以是一个单词、一个数字,或像 “>100” 这样的符号表达式。 -
sum_range(可选):找到匹配后,从这里提取要相加的数字。如果省略此项,Excel 将对range自身的值求和。
下面用一个简短示例来说明三部分如何协同:
=SUMIF(A2:A11, "Apples", B2:B11)
在该公式中,
-
A2:A10 是 range,因为我们要在其中查找 Apples。
-
Apples 是 criteria,即我们要精确匹配的单词。
-
B2:B10 是
sum_range,因为匹配的销售额位于该列。
因此,我们在 A 列查找 Apples。每次匹配成功,就把 B 列对应的数值相加。

使用 SUMIF() 基于条件对数值求和。图片来源:作者。
如何在 Excel 中使用 SUMIF()
要在 Excel 中使用 SUMIF(),请按以下步骤操作:
步骤 1:确定范围(range)
在示例中,我们使用以下数据集:

SUMIF() 的数据集。图片来源:作者。
选择要应用条件的范围。本例中,我们要搜索 Apples,它位于 Product 列,因此范围为 A2:A11。
步骤 2:设置条件(criteria)
因为我们要找 Apples,所以条件就是 Apples。
您可以将条件直接写入公式,也可以引用包含该条件的单元格。本例中我们直接输入,因此由于是文本,需要加上引号。
步骤 3:设置求和范围(sum_range)求和范围是实际的数字所在列。我们要汇总销售额,因此求和范围为 B2:B11。
求和范围不必与搜索范围大小或位置完全一致,只要逐行对齐即可,这样 SUMIF() 相加的值就与匹配条件的行一一对应。
现在,公式如下:
=SUMIF(A2:A11, "Apples", B2:B11)
其工作方式如下:
- 第 2 行是 Apples,因此相加 120 。
- 第 3 行是 Oranges,因此跳过。
- 第 4 行又是 Apples,因此相加 150 。
- 同理,第 8 行和第 11 行,因此相加 90 和 130。
最终结果为 490

使用 SUMIF() 汇总产品销售额。图片来源:作者。
SUMIF() 示例
接下来看看更多适合使用 SUMIF() 的场景。每个示例使用的条件类型略有不同,我们逐个说明。
汇总大于或小于某值的数字
有时我们并不是要匹配特定的单词,而是希望捕捉大于或小于某个数的所有项。
要得到所有销售额大于 100 的总和,公式为:
=SUMIF(B2:B11, ">100", B2:B11)
在表格中,大于 100 的数值有 120、150、110 和 130。相加得到 510。
请注意,此处 range 与 sum_range 相同,因为我们直接检查并汇总同一列的数字,而不是与其他列匹配。
对于小于 50 的销售额,公式为:
=SUMIF(B2:B11, "<50", B2:B11)
在我们的表格中,没有数值低于 50,因此返回 0,不是错误,只是没有匹配项。

汇总满足大于/小于条件的数字。图片来源:作者。
按日期求和
日期稍有不同,因为 Excel 将日期存储为数字。每个日期都是从固定起点开始的序列号。这也是为什么日期也能像数字一样使用比较符号。
假设 C 列是订单日期,我们想要统计 2026 年 3 月 1 日之后的销售总额。公式如下:
=SUMIF(C2:C11, ">"&DATE(2026,3,1), B2:B11)
在下图中,我已高亮出匹配的日期及其求和结果。
这里我们使用 DATE() 函数,而不是直接输入日期。这样可以避免因区域设置不同导致的日期读取差异。
如果我们想统计某一特定月份(如 2026 年 3 月)的开支,就需要两个条件,而不是一个,因为我们在检查一个范围而非单一时间点。
这其实就是 SUMIF() 的上限所在——我们会在后面的对比部分讲到。

按日期条件汇总销售额(SUMIF())。图片来源:作者。
将单元格引用作为条件
到目前为止,我们都把条件直接写进公式,比如 “Apples” 或 “>100”。这没问题,但不太灵活。如果要检查其他产品,就得每次修改公式。
更好的做法是引用单元格。假设 A6 单元格包含 Grapes 一词。公式可写为:
=SUMIF(A2:A11, A6, B2:B11)
这会汇总所有 Grapes 的数值。此后若要检查其他产品,只需更改 A6 的内容,无需改动公式。

用单元格引用代替硬编码条件。图片来源:作者。
如何在 SUMIF() 中使用通配符
通配符适用于我们不知道确切文本、只知道其模式的情况。例如,您不知道准确的单词,但知道它以 B 开头。
SUMIF() 支持两种通配符:
-
*代表任意数量的字符,可以是 0 个、1 个或很多个字符。 -
?代表恰好一个字符。
来看这些通配符在产品表中的用法。
以 “A” 开头的产品
假设我们想汇总所有以 A 开头的产品销售额。与其为 Apples、Apricots、Avocados 和 Almonds 分别写四个公式,不如用一个通配符公式一次性解决:
=SUMIF(A2:A8, "A*", B2:B8)
字母 A 后面的星号表示匹配 “A 加任意字符”。表中所有以 A 开头的产品都被匹配到。也就是 120 + 90 + 60 + 75,共计 345。

使用 * 通配符查找以 A 开头的产品。图片来源:作者。
名称包含特定文本
通配符也可以用在单词中间。假设我们要找名称中任意位置包含“an” 的产品,这会同时匹配 Bananas 和 Oranges。
此时,公式为:
=SUMIF(A2:A8, "*an*", B2:B8)
两侧的星号表示我们不关心 an 前后是什么。只要文本中包含 an,就算匹配。
基于此公式,表格中来自 Bananas 与 Oranges 的销售额会被相加,得到 175。

* 可查找包含特定字符的产品。图片来源:作者。
何时使用 ? 而不是 *
? 匹配恰好一个字符。如果我们有产品编码,并且只想保留字母 A 后面紧跟一位数字的编码,可以写:
=SUMIF(A2:A7, "A?", B2:B7)
这会匹配 A1、A2 和 A3,但不会匹配 A10 或 A11,因为这些在 A 后面有两个字符,而不是一个。

使用 ? 通配符匹配模式。图片来源:作者。
因此:
-
当文本长度不固定时,用
*。 -
当您明确知道字符数量时,用
?。
SUMIF() 与 SUMIFS()
SUMIFS() 与 SUMIF() 的作用相同:
-
SUMIF()一次只检查一个条件。 -
SUMIFS()可同时检查多个条件。
下面是一个简要对比。n.
|
SUMIF() |
SUMIFS() |
|
|
条件数量 |
一个 |
多个 |
|
语法顺序 |
先 range,后 criteria |
先 sum_range,后成对的 range 与 criteria |
|
最佳适用 |
单一条件的简单求和 |
依赖多个条件的求和 |
SUMIFS() 的语法是:
SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], …)
与 SUMIF() 的不同在于,sum_range 在 SUMIFS() 中放在最前面,而在 SUMIF() 中放在最后。
我们来用一个示例说明。
在销售表中,我们想统计 Apples 的总销售额,但仅限于销售额高于 100 的记录。这是两个条件。
与 SUMIF() 不同,SUMIFS() 能处理这种情况。写法如下:
=SUMIFS(B2:B11, A2:A11, "Apples", B2:B11, ">100")
这里,B2:B11 是最先列出的 sum_range。随后是条件对: A2:A11 与 Apples,以及 B2:B11 与 >100。Excel 会逐行检查两个条件,只有同时满足时才相加对应的销售额。

SUMIFS() 可一次检查多个条件。图片来源:作者。
SUMIF() 与 COUNTIF()
SUMIF() 与 COUNTIF() 看起来相似,二者在执行操作前都会检查条件,但用途不同。
-
SUMIF()对满足条件的值求和。 -
COUNTIF()统计满足条件的单元格个数。
下面是一个简要对比。n.
|
SUMIF() |
COUNTIF() |
|
|
作用 |
对匹配的值求和 |
统计匹配的单元格数 |
|
结果类型 |
总和 |
计数 |
|
是否需要求和范围 |
是 |
否 |
|
最佳适用 |
销售额、工时等合计 |
出现频次,如某项出现了多少次 |
一者给出总和,另一者给出计数。下面用原始销售表并排演示。
这里我们想了解关于 Apples 的两件事:
- 我们总共卖了多少
- 列表中 Apples 出现了多少次?
要得到总销售额,使用 SUMIF():
=SUMIF(A2:A11, "Apples", B2:B11)
它会把产品为 Apples 的销售额相加,结果为 490。
要得到计数,使用 COUNTIF():
=COUNTIF(A2:A11, "Apples")
它会统计包含 Apples 的行数,结果为 4。

COUNIF() 统计值在单元格中出现的次数。图片来源:作者。
COUNTIF() 只需要范围与条件,因为它不做求和。而 SUMIF() 还需要求和范围,因为它要从指定位置提取数字进行汇总。
常见的 SUMIF() 错误
即便是简单公式,也容易出现小错误。以下是最常见的问题及其解决方法。
使用了错误的范围
当 range 与 sum_range 不能逐行对齐时就会发生。例如,range 是 A2:A11,而 sum_range 是 B2:B10。此时 Excel 会出现一行错位,导致总和不正确,而且往往没有任何错误提示。
解决方法:确保两个范围的起止行一致。如果 range 是 A2:A11,sum_range 也应从第 2 行到第 11 行。
忘记填写求和范围
比如您要汇总 B 列,但条件检查的是 A 列。如果公式只写了 A2:A11 与条件,而省略了求和范围,Excel 会默认对 A 列自身求和,而不是 B 列,结果就不对了。
解决方法:当检查列与求和列不同,一定要填写求和范围。如果两列刚好相同,理论上可以省略,但为了清晰起见,仍建议写上。
条件语法不正确
如果把 >100 不加引号写入,会报错。应写作 ">100",使用双引号。单引号也会报错。
解决方法:凡是包含文本或比较符号的条件,都需要加引号。若只匹配一个精确数字(如单独的 100),则不需要引号。一旦条件中包含符号或文字,就必须使用引号。
数字被当作文本存储
有时表格里的数字看起来像数字,但 Excel 实际上把它们当作文本。这通常发生在从其他来源(如 CSV 文件或系统导出)导入数据后。
如果数字靠左对齐(Excel 显示文本时的习惯),您就能察觉这一点。
在这种情况下,使用诸如 ">100" 的比较条件进行 SUMIF() 会出问题,因为 Excel 无法像比较数字那样比较文本。
解决方法:把文本转换回数字。转到 开始 选项卡 > 数字 分组,在下拉列表中选择 常规 或 数值。
文本中包含多余空格
比如,一个单元格为 “Apples",另一个为 “Apples " 后面带了一个尾随空格。在您看来它们一样,但对 SUMIF() 来说并不相同,公式不会把它们当作匹配项。
解决方法:在运行公式前,用 TRIM() 函数去除多余空格。这样 "Apples" 与 "Apples " 就能被视为相同。
SUMIF() 最佳实践
一些好习惯能让 SUMIF() 更易用,尤其在您的表格不断扩展时。以下是我们的建议。
-
使用单元格引用而非硬编码条件:直接在公式中输入 “Apples” 可行,但每次检查其他内容都得改公式。改为指向某个单元格,之后只需更改单元格中的值,公式保持不变。
-
保持范围大小一致:range 与 sum_range 应覆盖相同行数。如果一个从第 2 行到第 11 行,另一个只到第 10 行,结果就会错位。
-
为可扩展数据集使用 Excel 表格:像 A2:A11 这样的普通区域不会在数据增长时自动包含新行。把数据转换为 Excel 表格即可解决。表格会在您添加新行时自动扩展,
SUMIF()公式随之一起扩展,无需手动更新。 -
用小示例测试公式:先用 5—6 行您已经知道答案的数据进行验证,确认公式输出符合预期。这样能及早发现问题,避免扩散到上百行。
-
需要多个条件时请使用 SUMIFS():一旦需要同时检查两件事(如产品与日期范围),就切换到
SUMIFS()。强行用SUMIF()通常会产生难读且脆弱的权宜做法。
结语
SUMIF() 是在单一条件下进行求和的最简单方式。提供 range、criteria 和 sum_range,其余交给它完成。
从简单条件开始,例如匹配产品名称或大于某个值的数字。当您熟练后,通配符与单元格引用能在不改变底层工作机制的情况下,使公式更灵活。
如果需要同时检查两件事,这正是应该转向 SUMIFS() 的信号。
FAQs
SUMIF() 是否区分大小写?
不会。SUMIF() 不区分大小写。例如,条件 "Apples"、"APPLES" 和 "apples" 都会匹配相同的单元格。
如何在 SUMIF() 公式中使用“不等于”?
在引号内使用 <> 运算符。例如,以下公式会对除 Apples 外的所有产品销售额求和:
=SUMIF(A2:A10,"<>Apples",B2:B10)
SUMIF() 能否跨工作表求和?
可以。为此,请在单元格区域前加上工作表名称:
=SUMIF(Sales!A2:A100,"Apples",Sales!B2:B100)
如果工作表名称包含空格,请用单引号括起:
=SUMIF('Monthly Sales'!A2:A100,"Apples",'Monthly Sales'!B2:B100)
为什么 SUMIF() 公式中 Excel 使用分号而不是逗号?
Excel 的参数分隔符取决于计算机的区域设置。有些地区使用分号而不是逗号。
因此,同一公式可能显示为:
=SUMIF(A2:A10;"Apples";B2:B10)
公式的工作方式相同,只是分隔符不同。
SUMIF() 能与命名范围配合使用吗?
可以。命名范围可以让公式更易懂。如果将 A、B 两列分别命名为 Products 和 Sales,则公式为:
=SUMIF(Products,"Apples",Sales)
命名范围必须覆盖相同的行。