在线 Excel 编辑器
免费使用

SUMIF 函数:语法、示例与错误排查

更新于 2026-10-13 · 免费 · 兼容 Excel 与 Google Sheets

语法

=SUMIF(区域, 条件, [求和区域])

快速答案

SUMIF 对满足一个条件的单元格求和:=SUMIF($C$2:$C$500, "New York", $D$2:$D$500) 会对 C 列等于 New York 的所有行累加 D 列的值。条件支持数字、文本、日期和通配符,且不区分大小写。结果为 0 通常是数字被存成了文本,或条件忘了加引号。

语法

=SUMIF(区域, 条件, [求和区域])
参数含义
区域要判断的单元格:一列或一行,如 $C$2:$C$500。
条件单元格要满足的条件:数字、带双引号的文本、形如 ">100" 的比较式,或 G1 这样的单元格引用。
[求和区域]可选。满足条件时要累加的单元格。省略时 SUMIF 直接对区域本身求和。

视区域设置不同,参数可能用分号而非逗号分隔:=SUMIF($C$2:$C$500; "New York"; $D$2:$D$500)。在以逗号作小数点的国家/地区,这是标准写法。

基本示例

=SUMIF($C$2:$C$500, "New York", $D$2:$D$500)

对 C 列城市正好是「New York」的行累加 D 列销售额。文本条件必须加双引号,且不区分大小写:「new york」求和结果相同。

=SUMIF($D$2:$D$500, ">100")

省略第三个参数时,SUMIF 对区域自身求和:把所有大于 100 的值加起来。比较运算符(>、>=、<、<>)必须写在引号内,紧贴数字。

=SUMIF($B$2:$B$500, ">2026-01-01", $D$2:$D$500)

对 2026 年 1 月 1 日之后的销售额求和。比较式写在引号内;单元格必须是真正的日期值,而不是「长得像日期」的文本。

=SUMIF($A$2:$A$500, "*@gmail.com", $D$2:$D$500)

对以 @gmail.com 结尾的邮箱对应金额求和。* 通配任意个字符,? 只匹配一个字符,~ 用来转义文本中真实的 * 或 ?。

求和区域会从左上角单元格自动扩展到与区域同高:=SUMIF($C$2:$C$500, "New York", $D$2) 实际求和的仍是 $D$2:$D$500。虽然方便,但仍建议两个区域保持相同大小,公式才易读、可审计。

常见错误与修复方法

症状最常见原因解决办法
#NAME?SUMIF 拼写错误——或者 Excel 界面语言不是英文,函数名被本地化了(如 SUMAR.SI、SOMME.SI、SUMMEWENN、SOMA.SE)。输入 =SUM( 让自动补全写出正确名称,或在与文件匹配的语言版本里打开。
结果始终为 0数字被存成文本、不可见尾随空格、条件漏了引号,或求和列传错了。先把文本型数字转成数字,清理空格,条件务必带双引号,再核对求和列的列标。
总和明显偏大插入行后区域与求和区域错位:求和区域从左上角单元格自动扩展,悄悄把表头或汇总行也加了进去。两个区域用相同高度重写并用 $ 锁定,求和区域的顶端绝不能高于第一行数据。
日期永远求和不到「日期」其实是从其他系统导入的文本,所以 ">2026-01-01" 永远匹配不上。先把这一列转换成真正的日期——日期条件只对真实日期值生效。

尾随空格在这里同样是隐形杀手:总和悄悄变少,却没有任何报错。求和前一键清理整列。

SUMIF 与 SUMIFS 对比

SUMIFSUMIFS
每条公式的条件数一个2 到 127 个
条件之间按 AND 组合不支持支持
求和区域的位置第三个参数,可选第一个参数,必填
可用版本所有 Excel 版本(Google Sheets 也支持)Excel 2007 及以上(Google Sheets 也支持)
=SUMIFS($D$2:$D$500, $C$2:$C$500, "New York", $D$2:$D$500, ">100")

一旦需要两个条件同时满足——比如「纽约且销售额大于 100」——就换 SUMIFS。注意参数顺序变了:SUMIFS 的求和区域放最前面且必填。单纯的 SUM 什么都不加地求和;带条件的求和都交给 SUMIF 和 SUMIFS。

Google Sheets 中的 SUMIF

Google Sheets 支持与 Excel 完全相同的 SUMIF 语法——上面的公式原样粘贴即可使用。

  • 比较运算符、通配符和不区分大小写的匹配,在 Sheets 里的行为完全一致。
  • 在以逗号作小数点的区域设置(欧洲和拉美大部分地区)里,参数间要写分号:=SUMIF($C$2:$C$500; "New York"; $D$2:$D$500)。Excel 的行为相同。
  • Google Sheets 同样提供 SUMIFS,参数顺序同样倒置——多条件求和在两个应用里都通用。
  • Sheets 还提供 QUERY 函数,一条公式就能筛选加汇总;Excel 里对应的做法是 SUMIFS 或数据透视表。

限制与进阶技巧

  • SUMIF 无法逐行比较两个区域(比如对 D 列大于 E 列的行求和)——那需要 SUMPRODUCT:=SUMPRODUCT(($D$2:$D$500>$E$2:$E$500)*$D$2:$D$500)。
  • 一次只能一个条件。要 OR 逻辑就把两个 SUMIF 相加:=SUMIF(区域, ">100")+SUMIF(区域, "<0")。
  • 不能按单元格颜色求和——按颜色筛选后看状态栏,或加一列辅助标记。
  • 用 $ 锁定区域($C$2:$C$500),下拉复制公式时区域才不会跑偏。
  • 条件里可以用 & 拼接单元格引用:=SUMIF($C$2:$C$500, G1, $D$2:$D$500),比较式写 ">"&G1——阈值一改公式不用动。

求和之前往往要先看看符合条件的行:筛选出来、人工核对,再交给 SUMIF 算总账。下面的免费工具两头都能帮上忙。

相关工具

相关函数

常见问题

SUMIF 在 Excel 里做什么?

对满足单个条件的单元格求和——大于某阈值的销售额、某个城市的收入、某个日期之后的合计或通配符模式:=SUMIF($C$2:$C$500, "New York", $D$2:$D$500)。匹配不区分大小写,一条公式只处理一个条件。

怎么对大于某个数的单元格求和?

把运算符写进带引号的条件里,并省略第三个参数:=SUMIF($D$2:$D$500, ">100")。引号必须保留——少了引号 Excel 会把 >100 当成非法公式。大于等于用 >=;要引用单元格就用 & 拼接:">"&D1。

为什么 SUMIF 返回 0?

几乎都是数据问题而非公式问题:数字被存成文本、不可见尾随空格、条件漏了引号,或求和列传错。用 VALUE() 转换文本型数字、清理空格,并确认「New York」确实包在双引号里。

SUMIF 的条件能引用单元格吗?

能:=SUMIF($C$2:$C$500, G1, $D$2:$D$500) 直接用 G1 的值作条件。比较式则把运算符和引用拼起来:">"&G1。这样条件跟着单元格走,改阈值无需改公式。

SUMIF 区分大小写吗?

不区分——「NYC」「nyc」「Nyc」被视为同一个值。确实需要区分大小写的求和时,用 SUMPRODUCT 配合 EXACT:=SUMPRODUCT(--EXACT(区域, "NYC")*求和区域)。

什么时候该用 SUMIFS?

一旦有两个及以上必须同时成立的条件:=SUMIFS($D$2:$D$500, $C$2:$C$500, "New York", $D$2:$D$500, ">100")。SUMIF 只处理一个条件;SUMIFS 支持 2 到 127 个,Excel 2007 及以上和 Google Sheets 都能用。注意参数顺序:SUMIFS 的求和区域在最前面。

SUMIF 在 Google Sheets 里能用吗?

能——函数名、参数、通配符和不区分大小写的匹配都一样。只有在以逗号作小数点的区域设置里,参数分隔符才变成分号:=SUMIF($C$2:$C$500; "New York"; $D$2:$D$500)。

准备好处理你自己的文件了吗?

打开Excel 数据体检 — 免费