跳至内容

Excel 中的 SUMIF():新手指南

学习如何使用 Excel 的 SUMIF() 函数在满足条件时进行求和,包含语法讲解、实用示例以及常见错误的规避方法。
更新 2026年8月2日  · 13分钟

用 AI 探索

在 ChatGPT 中打开在 Claude 中打开在 Perplexity 中打开

要在 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:B10sum_range,因为匹配的销售额位于该列。

因此,我们在 A 列查找 Apples。每次匹配成功,就把 B 列对应的数值相加。

在 Excel 中应用 SUMIF() 按条件求和

使用 SUMIF() 基于条件对数值求和。图片来源:作者。

如何在 Excel 中使用 SUMIF()

要在 Excel 中使用 SUMIF(),请按以下步骤操作:

步骤 1:确定范围(range)

在示例中,我们使用以下数据集:

Excel 中 SUMIF() 的数据集。

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 行,因此相加 90130

最终结果为 490

在 Excel 中使用 SUMIF 汇总产品销售额

使用 SUMIF() 汇总产品销售额。图片来源:作者。

SUMIF() 示例

接下来看看更多适合使用 SUMIF() 的场景。每个示例使用的条件类型略有不同,我们逐个说明。

汇总大于或小于某值的数字

有时我们并不是要匹配特定的单词,而是希望捕捉大于或小于某个数的所有项。

要得到所有销售额大于 100 的总和,公式为:

=SUMIF(B2:B11, ">100", B2:B11)

在表格中,大于 100 的数值有 120150110130。相加得到 510

请注意,此处 range 与 sum_range 相同,因为我们直接检查并汇总同一列的数字,而不是与其他列匹配。

对于小于 50 的销售额,公式为:

=SUMIF(B2:B11, "<50", B2:B11)

在我们的表格中,没有数值低于 50,因此返回 0,不是错误,只是没有匹配项。

SUMIF 在 Excel 中根据大于/小于条件求和

汇总满足大于/小于条件的数字。图片来源:作者。

按日期求和

日期稍有不同,因为 Excel 将日期存储为数字。每个日期都是从固定起点开始的序列号。这也是为什么日期也能像数字一样使用比较符号。

假设 C 列是订单日期,我们想要统计 2026 年 3 月 1 日之后的销售总额。公式如下:

=SUMIF(C2:C11, ">"&DATE(2026,3,1), B2:B11)

在下图中,我已高亮出匹配的日期及其求和结果。

这里我们使用 DATE() 函数,而不是直接输入日期。这样可以避免因区域设置不同导致的日期读取差异。

如果我们想统计某一特定月份(如 2026 年 3 月)的开支,就需要两个条件,而不是一个,因为我们在检查一个范围而非单一时间点。

这其实就是 SUMIF() 的上限所在——我们会在后面的对比部分讲到。

使用 SUMIF 按日期条件汇总销售额

按日期条件汇总销售额(SUMIF())。图片来源:作者。

将单元格引用作为条件

到目前为止,我们都把条件直接写进公式,比如 “Apples” 或 “>100”。这没问题,但不太灵活。如果要检查其他产品,就得每次修改公式。

更好的做法是引用单元格。假设 A6 单元格包含 Grapes 一词。公式可写为:

=SUMIF(A2:A11, A6, B2:B11)

这会汇总所有 Grapes 的数值。此后若要检查其他产品,只需更改 A6 的内容,无需改动公式。

在 Excel 的 SUMIF 中用单元格引用替代硬编码条件

用单元格引用代替硬编码条件。图片来源:作者。

如何在 SUMIF() 中使用通配符

通配符适用于我们不知道确切文本、只知道其模式的情况。例如,您不知道准确的单词,但知道它以 B 开头。

SUMIF() 支持两种通配符:

  • * 代表任意数量的字符,可以是 0 个、1 个或很多个字符。

  • ? 代表恰好一个字符。

来看这些通配符在产品表中的用法。

以 “A” 开头的产品

假设我们想汇总所有以 A 开头的产品销售额。与其为 ApplesApricotsAvocadosAlmonds 分别写四个公式,不如用一个通配符公式一次性解决:

=SUMIF(A2:A8, "A*", B2:B8)

字母 A 后面的星号表示匹配 “A 加任意字符”。表中所有以 A 开头的产品都被匹配到。也就是 120 + 90 + 60 + 75,共计 345

在 Excel 中使用 * 通配符查找以 A 开头的产品

使用 * 通配符查找以 A 开头的产品。图片来源:作者。

名称包含特定文本

通配符也可以用在单词中间。假设我们要找名称中任意位置包含“an” 的产品,这会同时匹配 BananasOranges

此时,公式为:

=SUMIF(A2:A8, "*an*", B2:B8)

两侧的星号表示我们不关心 an 前后是什么。只要文本中包含 an,就算匹配。

基于此公式,表格中来自 Bananas Oranges 的销售额会被相加,得到 175

* 通配符在 Excel 中查找包含特定字符的产品名称

* 可查找包含特定字符的产品。图片来源:作者。

何时使用 ? 而不是 *

? 匹配恰好一个字符。如果我们有产品编码,并且只想保留字母 A 后面紧跟一位数字的编码,可以写:

=SUMIF(A2:A7, "A?", B2:B7)

这会匹配 A1A2A3,但不会匹配 A10A11,因为这些在 A 后面有两个字符,而不是一个。

在 Excel 中用 ? 通配符匹配模式

使用 ? 通配符匹配模式。图片来源:作者。

因此:

  • 当文本长度不固定时,用 *

  • 当您明确知道字符数量时,用 ?

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_rangeSUMIFS() 中放在最前面,而在 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() 在 Excel 中可一次检查多个条件

SUMIFS() 可一次检查多个条件。图片来源:作者。

SUMIF() 与 COUNTIF()

SUMIF()COUNTIF() 看起来相似,二者在执行操作前都会检查条件,但用途不同。

  • SUMIF() 对满足条件的值求和。

  • COUNTIF() 统计满足条件的单元格个数。

下面是一个简要对比。n.

 

SUMIF()

COUNTIF()

作用

对匹配的值求和

统计匹配的单元格数

结果类型

总和

计数

是否需要求和范围

最佳适用

销售额、工时等合计

出现频次,如某项出现了多少次

一者给出总和,另一者给出计数。下面用原始销售表并排演示。

这里我们想了解关于 Apples 的两件事:

  1. 我们总共卖了多少
  2. 列表中 Apples 出现了多少次?

要得到总销售额,使用 SUMIF()

=SUMIF(A2:A11, "Apples", B2:B11)

它会把产品为 Apples 的销售额相加,结果为 490

要得到计数,使用 COUNTIF()

=COUNTIF(A2:A11, "Apples")

它会统计包含 Apples 的行数,结果为 4

COUNIF() 在 Excel 中统计某值在单元格中出现的次数

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 两列分别命名为 ProductsSales,则公式为:

=SUMIF(Products,"Apples",Sales)

命名范围必须覆盖相同的行。

主题

在 DataCamp 学习 Excel

Tracks

Excel基础知识

16小时
掌握使用 Excel 所需的核心技能,从准备数据到编写公式和创建可视化。 无需任何先前经验。
查看详情Right Arrow
开始课程
查看更多Right Arrow