发布日期:2026-06-12 浏览次数:31
"统计华南地区、2026年6月、A产品的销售额总和"——这个需求涉及三个条件:地区、月份、产品。如果用最原始的SUMIF,你需要先把满足条件的行筛选出来再求和,或者创建辅助列合并条件。用数组公式的SUMPRODUCT也可以,但公式写起来较长。
WPS表格的COUNTIFS和SUMIFS系列函数,专门为解决这类"多条件统计"而设计。它们允许你在一个函数中同时指定多个筛选条件,对满足所有条件的数据进行计数或求和。
这一系列函数以"IFS"结尾,核心特征是:一条公式处理多个条件,条件之间是AND关系(所有条件同时满足才算一条)。 本文将从基础语法到进阶应用,系统讲解这些函数的完整用法。
最多支持127个条件对(条件区域+条件),日常用到3~5个已经是极限了。
单条件计数(等同于COUNTIF):
统计A列为"华东"的记录数量——同时只有这一个条件时,效果与COUNTIF完全相同。
双条件计数:
统计"华东地区"且"A产品"的记录数量。两个条件必须同时满足。
三条件计数:
统计"华东地区"、"A产品"、"日期在2026年6月1日之后"的记录数量。
文本条件: 直接输入文本或用单元格引用。
数值条件: 使用比较运算符(>、<、>=、<=、=、<>)。
日期条件: 日期需要用DATE函数或直接输入日期值(文本日期也可以但建议使用DATE函数以确保正确)。
空值与非空值:
与SUMIF的重要区别: SUMIF的语法是SUMIF(条件区域, 条件, 求和区域)——求和区域在最后。而SUMIFS的语法是SUMIFS(求和区域, 条件区域1, 条件1, 条件区域2, 条件2, ...)——求和区域在最前面。
单条件求和(等效于SUMIF):
统计A列为"华东"的对应D列销售额总和。
双条件求和:
统计"华东地区"且"A产品"的销售额总和。
三条件求和(包含区间条件):
统计"华东地区+A产品+2026年6月内"的销售额总和。
所有区域的行数必须相同——如果求和区域是D2:D100,条件区域必须是同样的2到100行(或整个D列与A列对应)。区域大小不一致是SUMIFS最常见的错误原因之一。
COUNTIFS和SUMIFS支持通配符:
*(星号):匹配任意数量的字符。?(问号):匹配单个字符。~(波浪号):转义字符,匹配*或?本身。统计以"华东"开头的所有地区的销售额(如"华东区""华东大区""华东一部")。
统计"前三个任意字符+部"的记录数量(如"技术部""市场部""财务部")。
统计"华东地区+A产品"的平均销售额。
注意: AVERAGEIFS只计算满足条件的记录的平均值——空白单元格和包含文本的单元格会被自动忽略。
MAXIFS和MINIFS是WPS较新版本中引入的函数,用于返回满足条件的数据中的最大值或最小值。
示例: 华南地区销售额的最高记录。
示例: A产品在2026年的最低销售额。
COUNTIFS和SUMIFS的条件之间是"AND"关系——所有条件必须同时满足。如果既需要统计"华东"又需要统计"华南"(OR关系:满足任意一个就算),直接使用COUNTIFS是不行的。
方案一:相加法
分别统计每个条件的数量,然后相加:
统计华东和华南的总记录数。
sum同理:
方案二:数组法
使用SUMPRODUCT配合数组:
统计A列中为"华东"或"华南"的记录数。
注意: 将多个同列的OR条件用加法+连接,用>0判断是否至少满足一个条件。
如果需求是"华东或华南的A产品销售额",条件分解为:
分别处理两个OR分支,每个分支中再包含AND条件。
将条件值放在单元格中,公式引用这些单元格,使条件可随时修改而无需编辑公式:
当条件包含比较运算符时:
运算符(">=")和单元格引用之间用&连接。
在E2和F2中设置下拉菜单,让用户通过选择下拉值动态改变条件——公式结果自动更新。这是"交互式统计报表"的常见设计模式。
COUNTIFS和SUMIFS的区域可以引用其他工作表:
统计函数支持引用其他工作簿中的区域,但需要注意:
建议: 将需要统计的数据汇总到当前工作簿中,使用"多表合并"功能(VSTACK或合并计算)将多个数据源整合为一个数据表,然后基于这个数据表执行统计——这样可以避免跨工作簿引用的链接断裂问题。
如果需要统计"所有Sheet中满足条件的数据总和"(不跨工作簿,在同一个工作簿内的多个Sheet中统计),不能直接把SUMIFS用在多个Sheet上。可以使用多个SUMIFS相加,或者先用VSTACK将数据堆叠后再统计(但VSTACK只在较新版本中可用)。
一个可以不用VSTACK的方法: 使用INDIRECT函数结合多个工作表名称来构建条件区域的引用,但这种方法对数据格式和位置一致性要求较高。
数据表: A列=销售日期、B列=销售员姓名、C列=地区、D列=产品、E列=销售额。
需求1: 统计2026年第一季度的总销售额。
需求2: 统计2026年6月华东或华南地区,A产品销售额大于5000元的订单数量。
数据表: A列=员工姓名、B列=月份、C列=出勤天数。
需求: 统计出勤天数满勤(22天及以上)的员工数量。
需求: 统计2026年6月出勤天数超过20天的员工数量。
前提是月份列是数字(如6),不是文本。
数据表: A列=产品名称、B列=库存数量、C列=安全库存量。
需求: 统计库存低于安全库存的产品数量。
需求: 计算需要补货的总数量(安全库存-当前库存,只取正数)。
计算准确的补货量,需要一个辅助列D,D列公式为=IF(B2<C2, C2-B2, 0),然后对D列直接求和。如果希望在一个单元格中完成补货需求计算,可以使用数组公式。
COUNTIFS和SUMIFS要求所有区域的行数或列数一致。如果条件区域1是A2:A100,而条件区域2是B2:B101——会报错。在整列引用(如A:A)时不存在这个问题。
通配符*和?只适用于文本条件。在数值条件中使用不会报错,但也不会按预期进行模糊匹配——WPS会将*视为普通字符。
COUNTIFS和SUMIFS在数千行到数万行的数据量中性能良好。但如果数据量超过10万行,且公式中包含多个条件,计算速度会显著下降。
=1*(A2="华东")),然后对辅助列做SUM求和。| 函数 | 作用 | 语法 |
|---|---|---|
| COUNTIFS | 多条件计数 | COUNTIFS(条件区域1, 条件1, 条件区域2, 条件2, ...) |
| SUMIFS | 多条件求和 | SUMIFS(求和区域, 条件区域1, 条件1, 条件区域2, 条件2, ...) |
| AVERAGEIFS | 多条件平均值 | AVERAGEIFS(平均值区域, 条件区域1, 条件1, ...) |
| MAXIFS | 多条件最大值 | MAXIFS(最大值区域, 条件区域1, 条件1, ...) |
| MINIFS | 多条件最小值 | MINIFS(最小值区域, 条件区域1, 条件1, ...) |
速记规则: 最后一个字母"S"代表"复数条件"——所有以IFS结尾的函数都支持多个条件。
COUNTIFS和SUMIFS是WPS表格中"万能条件统计"的核心函数。它们用简单一致的语法,解决了多条件计数、求和、平均值等最常见的统计需求。与使用辅助列或数组公式的替换方案相比:
掌握COUNTIFS和SUMIFS,你将能够用一条公式灵活组合各种条件——无论是基于文本、数字还是日期的筛选——快速得出统计数据。你的报表,从此不再需要"一个个筛选、一次次求和"的冗长操作流程。
没有相关标签