按条件求和只用两个函数:单条件用 SUMIF,多条件用 SUMIFS。它们的参数顺序不一样,这是现场最高频的错因。

记住一句话:SUMIF 是先条件、后求和;SUMIFS 是先求和、后条件。

=SUMIF(A:A,"华东",C:C) 里,求和区域 C:C 写在最后。

=SUMIFS(C:C,A:A,"华东") 里,求和区域 C:C 写在最前,后面才是成对出现的条件区域与条件。

两套写法放在一起对照

  • 单条件 SUMIF:=SUMIF(A:A,"华东",C:C),读作"A 列里找华东,把同一行 C 列的值加起来",条件区域在前、求和区域在后
  • 同一条 SUMIFS 写法:=SUMIFS(C:C,A:A,"华东"),结果完全一样,但求和区域挪到了第一位
  • 两个条件:=SUMIFS(C:C,A:A,"华东",B:B,"已完成"),从第二个参数开始是"条件区域、条件"交替出现
  • 条件引用单元格:=SUMIFS(C:C,A:A,F1,B:B,">"&G1),比较号写在引号里,单元格地址写在引号外,中间用连接符号接起来
  • 容易记混的点:SUMIF 只有一个条件区域,SUMIFS 的第一段是求和区域,两者第二个参数含义完全不同

为什么建议一律用 SUMIFS

哪怕当下只有一个条件,也建议直接写 SUMIFS。原因是加第二个条件时只要在末尾续上一组"条件区域、条件",不用换函数、不用重记顺序。SUMIFS 各参数位置固定,从右往左补条件即可,改错的概率低很多。

多条件是"且","或"要另写

SUMIFS 里所有条件都作用在同一行上,必须同时成立才计入,这就是"且"。它没有内置的"或"。

  1. 同一个字段的两个取值(华东或华南):把两个式子相加,=SUMIFS(C:C,A:A,"华东")+SUMIFS(C:C,A:A,"华南")
  2. 取值多到四五个:在源表加一列标记,用判断返回"是"或"否",再对标记列做单条件求和
  3. 想一次算完可以用 SUMPRODUCT 配多组判断相加,但区域一定要收到实际数据行,用整列会让重算慢到无法接受
  4. 跨表的"或"(两张表都要统计)不要写在一个公式里硬拼,先把两张表并成一张再加来源列

条件怎么写,写错就报错或算成 0

  • 文本条件必须加引号:"华东"。引号必须是英文半角,写成中文全角引号会得到 #NAME?
  • 比较运算符和值一起放进引号:">1000"、">=60"、"<>已完成"、"<=100",号与值之间不要留空格
  • 裸数字是等于不是大于:条件位置写 1000 表示"等于 1000",想表达大于必须写成 ">1000"
  • 通配符:星号代表任意个字符,问号代表一个字符。"张*" 匹配所有张姓开头,"??华东" 匹配前面正好两个字再接华东
  • 条件里本身含星号:备注列真写着 100*,要写成 "100~*" 用波浪号转义,否则被当通配符,多算一批行
  • 日期条件必须是比较表达式并引用真日期:">="&DATE(2026,1,1) 或 ">="&F1(F1 里是日期格式的单元格)。直接写 ">=2026/1/1" 依赖系统区域设置,同一份表换台电脑可能算出 0
  • 空白与非空白:条件写 "" 统计空单元格,写 "<>" 统计非空单元格。判断真空白用公式 COUNTBLANK,带一个空格的单元格不算空白

一个完整示例:从一张流水表到多条件求和

假设源表 A 列是部门、B 列是完成状态、C 列是金额、D 列是发生日期,标题在第 1 行,数据从第 2 行到第 500 行。

  • 只求华东合计:=SUMIF(A2:A500,"华东",C2:C500),条件区域 A 列在前,求和区域 C 列在后
  • 同一句改写成 SUMIFS:=SUMIFS(C2:C500,A2:A500,"华东"),求和区域 C 列挪到最前
  • 加第二个条件(已完成):=SUMIFS(C2:C500,A2:A500,"华东",B2:B500,"已完成")
  • 条件取自单元格:=SUMIFS(C2:C500,A2:A500,F1,B2:B500,G1),两个区域都写成绝对引用 $A$2:$A$500 后再下拉,条件值留在 F1、G1 里换着填
  • 只想看命中了几行:把 SUMIFS 换成 COUNTIFS,条件部分原样照抄 =COUNTIFS(A2:A500,"华东",B2:B500,"已完成")
  • 这几种写法放在一起对照着练一遍,参数顺序就记住了,比背口诀可靠

用整列引用(A:A)也能算,代价是每次重算都扫 104 万行,几百个公式一起用会让文件明显变卡。数据超过几千行时,先把区域收到实际行数,或把源数据按 Ctrl+T 转成表再引用。

日期条件要夹成一个区间

按月统计最容易犯的错,是用通配符去匹配日期文本,或者只写一个"大于等于月初"忘了收尾。

  1. 在一个空格里放当月 1 日,例如 H1 写 2026-01-01,格式设为日期
  2. 在另一个空格里放下月 1 日,H2 写 2026-02-01
  3. 求和写 =SUMIFS(C2:C500,D2:D500,">="&H1,D2:D500,"<"&H2),求和区域 C 列在最前,后面两组成对的"条件区域、条件"都落在 D 列日期上,一个管下界、一个管上界
  4. 上界必须用小于而不是小于等于,否则下月 1 日当天带 0 点时间的记录会被重复计入
  5. 逐月复制这一对边界单元格,比每月手写日期函数出错率低得多

如果日期列被存成文本,上面这句会全部返回 0。先用 =ISTEXT(D2) 确认,再用 数据 → 分列 的第三步把该列指定成日期转回真日期。

结果为 0 和"没匹配到"不是一回事

先用 =COUNTIFS(A:A,"华东") 数命中行数,再决定往哪个方向查,这一步能省掉半小时。

  • 命中 0 行:条件值和源数据不相同。常见是多一个空格、全角字符、简称与全称不一致("华东"与"华东大区"是两个不相等的文本)
  • 命中有行但求和是 0:求和列里的数字被存成文本,不参与相加。选中该列走 数据 → 分列 → 直接完成,或复制值为 1 的单元格做选择性粘贴"乘"
  • 结果是真实值的一半或两倍:条件区域与求和区域起点错开一行,把两个区域的第一行对齐再看
  • 结果偏大:区域含表头或小计、合计行,用整列引用时最容易把汇总行也统计进去
  • 结果偏小:隐藏行不是原因,SUMIFS 照样把被筛选隐藏的行算进去;偏小通常是条件列选错、全称与简称不一致,或者一部分数据根本在另一张表

报错信息分别指什么

  • #VALUE!:条件区域与求和区域尺寸不一致,比如求和区域 1000 行、条件区域 999 行。把两段区域重新选成同样的起止行,别用复制来的区域手动改行数
  • #NAME?:函数名拼错、引号写成中文全角,或者用了本机没有的新函数。带版本差异的函数是否可用,以本机 Excel 版本为准
  • 结果显示成百分比或分数:公式没问题,是结果单元格的数字格式不对,按 Ctrl+1 改回数值或常规
  • 单元格显示一长串井号:列宽不够,双击列边线加宽即可,和数据无关

分场景怎么挑

  • 一次性核对,只看一列一类:SUMIF 够用,但为以后方便仍建议写 SUMIFS
  • 两个以上维度才能定一格:SUMIFS,条件区域与条件依次往后排
  • 要按部门一次看全部合计:别写几十个公式,插一张数据透视表,行放部门、值放金额,拖完就能全部看到
  • 模板里固定几格要自动算:用 SUMIFS,透视表不适合填在固定单元格里给人复制作业
  • 只要筛选后可见行的合计:SUMIFS 会把被筛选隐藏的行也算进去,这时用 =SUBTOTAL(9,C2:C1000),第一个参数 9 表示求和,只统计当前可见单元格
  • 跨多张同结构表汇总:先把表并成一张再加来源列做条件,比写跨表公式稳得多
  • 要按"某月"求和:优先用两个日期条件夹出区间(大于等于当月 1 日、小于下月 1 日),不要靠通配符去匹配日期文本

用透视表做一次二次核对

条件求和最容易犯的是"区域选歪一行",肉眼查很慢,用另一套机制验一遍更快。

  1. 选中整块数据,插入 → 数据透视表,放到新工作表
  2. 条件字段拖到行,金额拖到值;值区域显示"计数项: 金额"时,右键 → 值字段设置 → 改成求和
  3. 第二个条件拖成列字段或报表筛选,让它与 SUMIFS 用同一组条件
  4. 两边数字不一致,优先怀疑数据里有空格、文本型数字,或源表藏着隐藏的汇总行
  5. 核对一致后再定版,透视表可以留着,但别把它当公式结果的一部分发给别人

系统导出的对账单、流水最常同时踩到类型和编码两个坑,先看 CSV 和 Excel 有什么区别,乱码单独见 CSV 打开中文乱码怎么修。

条件引用单元格时最容易犯的五个错

  • 条件单元格没加 $ 锁定,公式下拉后条件跟着变成下一格,越算越偏
  • 条件区域与求和区域长度不同,直接 #VALUE!,用鼠标重新框选一次比手打行数可靠
  • 把比较号写在引号外面,例如 ">"&G1 写成 >"&G1",语法直接不成立
  • 条件格里放的是文本型日期(左上角带绿三角),拿它当 ">=" 的下界会命中 0 行
  • 下拉填充时只锁了区域忘了锁条件格,或反之,检查办法是选中公式按 F2 看高亮范围是否还落在预期列上

统计前先统一三件事

  • 口径统一:金额是含税还是不含税、是否含运费,先在一列里标注清楚,否则任何条件求和都对不上财务数
  • 分类统一:同一部门在源表里出现三种写法,求和必然分裂成三行,先用查找替换并成一种
  • 期间统一:跨月的数据不要混在一张无日期列的表里,补上日期列,条件求和才能按月切

四个不要

  • 不要给 SUMIFS 套 IFERROR 把 #VALUE! 变成 0,结构错误会被彻底藏住,等发现时已经按错数报过表
  • 不要在几百个条件求和公式里都用整列引用,先把区域收到实际行数,或把源数据转成表
  • 不要把中文简称直接敲进条件里,先去源列确认全称
  • 不要以为日期加了引号就能比大小,纯文本日期不参与比较,必须先转成真日期

本站能做到什么、做不到什么

站内不提供公式计算:把 .xlsx 传上来不会替你跑 SUMIFS,也不会核对结果是否对得上。它负责把数据整理成能算的样子——系统导出的文本用 CSV 转 Excel 打开,多张同结构表用 Excel 合并 并成一张,重复键用 Excel 去重 清理,按部门分发用 按 Sheet 拆分,汇总结果定版交付用 Excel 转 PDF,多张表合成一个 PDF 的做法见 Excel 多工作表转成一个 PDF。

边界要说明白:转换类工具没有 OCR,图片或扫描件里的表格数字提不出来,要取数走 表格识别转Excel(每页扣 2 点);不提供 PDF 转 Excel,PDF 中的表格要进 Excel 得先转 Word 或提取文本再重建;不能修改 PDF 里已有的文字;不做数据抓取,也不能连数据库取数。限额方面,游客与未充值注册用户单文件上限 8MB、每天 5 次成功转换;充值 VIP 会员后单文件上限提高到 20~50MB(随档位递增),转换次数不限,各档当前售价与额度以 会员页 为准。转换在服务器端完成,工资表、报销明细等机密材料请自行评估;文件处理完保留 24 小时,到期自动清理,成品当天下载。