WPS表格COUNTIFS与SUMIFS多条件统计——万能条件统计公式详解

发布日期:2026-06-12     浏览次数:92

"统计华南地区、2026年6月、A产品的销售额总和"——这个需求涉及三个条件:地区、月份、产品。如果用最原始的SUMIF,你需要先把满足条件的行筛选出来再求和,或者创建辅助列合并条件。用数组公式的SUMPRODUCT也可以,但公式写起来较长。

WPS表格的COUNTIFS和SUMIFS系列函数,专门为解决这类"多条件统计"而设计。它们允许你在一个函数中同时指定多个筛选条件,对满足所有条件的数据进行计数或求和。

  • COUNTIFS: 统计同时满足多个条件的记录数量。
  • SUMIFS: 对同时满足多个条件的记录中的指定数值列求和。
  • AVERAGEIFS: 计算同时满足多个条件的记录的平均值。
  • MAXIFS / MINIFS: 返回满足条件的最大值或最小值(WPS较新版本支持)。

这一系列函数以"IFS"结尾,核心特征是:一条公式处理多个条件,条件之间是AND关系(所有条件同时满足才算一条)。 本文将从基础语法到进阶应用,系统讲解这些函数的完整用法。


一、COUNTIFS——多条件计数

1.1 函数语法

=COUNTIFS(条件区域1, 条件1, [条件区域2, 条件2], ...)
  • 条件区域: 需要判断条件的单元格区域。
  • 条件1: 对条件区域1的判断条件——可以是数字、文本、表达式、单元格引用。

最多支持127个条件对(条件区域+条件),日常用到3~5个已经是极限了。

1.2 基本用法

单条件计数(等同于COUNTIF):

=COUNTIFS(A2:A100, "华东")

统计A列为"华东"的记录数量——同时只有这一个条件时,效果与COUNTIF完全相同。

双条件计数:

=COUNTIFS(A2:A100, "华东", B2:B100, "A产品")

统计"华东地区"且"A产品"的记录数量。两个条件必须同时满足。

三条件计数:

=COUNTIFS(A2:A100, "华东", B2:B100, "A产品", C2:C100, ">=2026/6/1")

统计"华东地区"、"A产品"、"日期在2026年6月1日之后"的记录数量。

1.3 不同条件类型的写法

文本条件: 直接输入文本或用单元格引用。

=COUNTIFS(A:A, "华东")
=COUNTIFS(A:A, E2) 'E2单元格的值为"华东"

数值条件: 使用比较运算符(>、<、>=、<=、=、<>)。

=COUNTIFS(C:C, ">100")
=COUNTIFS(C:C, ">=1000", C:C, "<=5000")

日期条件: 日期需要用DATE函数或直接输入日期值(文本日期也可以但建议使用DATE函数以确保正确)。

=COUNTIFS(D:D, ">="&DATE(2026,6,1), D:D, "<="&DATE(2026,6,30))

空值与非空值:

=COUNTIFS(A:A, "") '空值
=COUNTIFS(A:A, "<>") '非空值

二、SUMIFS——多条件求和

2.1 函数语法与顺序

=SUMIFS(求和区域, 条件区域1, 条件1, [条件区域2, 条件2], ...)

与SUMIF的重要区别: SUMIF的语法是SUMIF(条件区域, 条件, 求和区域)——求和区域在最后。而SUMIFS的语法是SUMIFS(求和区域, 条件区域1, 条件1, 条件区域2, 条件2, ...)——求和区域在最前面。

2.2 基本用法

单条件求和(等效于SUMIF):

=SUMIFS(D2:D100, A2:A100, "华东")

统计A列为"华东"的对应D列销售额总和。

双条件求和:

=SUMIFS(D2:D100, A2:A100, "华东", B2:B100, "A产品")

统计"华东地区"且"A产品"的销售额总和。

三条件求和(包含区间条件):

=SUMIFS(D2:D100, A2:A100, "华东", B2:B100, "A产品", C2:C100, ">="&DATE(2026,6,1), C2:C100, "<="&DATE(2026,6,30))

统计"华东地区+A产品+2026年6月内"的销售额总和。

2.3 求和区域与条件区域的大小必须一致

所有区域的行数必须相同——如果求和区域是D2:D100,条件区域必须是同样的2到100行(或整个D列与A列对应)。区域大小不一致是SUMIFS最常见的错误原因之一。

2.4 使用通配符

COUNTIFS和SUMIFS支持通配符:

  • *(星号):匹配任意数量的字符。
  • ?(问号):匹配单个字符。
  • ~(波浪号):转义字符,匹配*?本身。
=SUMIFS(D:D, A:A, "华东*")

统计以"华东"开头的所有地区的销售额(如"华东区""华东大区""华东一部")。

=COUNTIFS(A:A, "???部")

统计"前三个任意字符+部"的记录数量(如"技术部""市场部""财务部")。


三、AVERAGEIFS——多条件平均值

3.1 语法

=AVERAGEIFS(平均值区域, 条件区域1, 条件1, [条件区域2, 条件2], ...)

3.2 用法示例

=AVERAGEIFS(D2:D100, A2:A100, "华东", B2:B100, "A产品")

统计"华东地区+A产品"的平均销售额。

注意: AVERAGEIFS只计算满足条件的记录的平均值——空白单元格和包含文本的单元格会被自动忽略。


四、MAXIFS与MINIFS——条件最大/最小值

4.1 语法与用法

MAXIFS和MINIFS是WPS较新版本中引入的函数,用于返回满足条件的数据中的最大值或最小值。

=MAXIFS(最大值区域, 条件区域1, 条件1, ...)
=MINIFS(最小值区域, 条件区域1, 条件1, ...)

示例: 华南地区销售额的最高记录。

=MAXIFS(D2:D100, A2:A100, "华南")

示例: A产品在2026年的最低销售额。

=MINIFS(D2:D100, B2:B100, "A产品", C2:C100, ">="&DATE(2026,1,1), C2:C100, "<="&DATE(2026,12,31))

五、OR条件的处理

5.1 IFS函数的局限性

COUNTIFS和SUMIFS的条件之间是"AND"关系——所有条件必须同时满足。如果既需要统计"华东"又需要统计"华南"(OR关系:满足任意一个就算),直接使用COUNTIFS是不行的。

5.2 OR条件的两种实现方案

方案一:相加法

分别统计每个条件的数量,然后相加:

=COUNTIFS(A:A, "华东") + COUNTIFS(A:A, "华南")

统计华东和华南的总记录数。

sum同理:

=SUMIFS(D:D, A:A, "华东") + SUMIFS(D:D, A:A, "华南")

方案二:数组法

使用SUMPRODUCT配合数组:

=SUMPRODUCT(((A2:A100="华东")+(A2:A100="华南")>0)*1)

统计A列中为"华东"或"华南"的记录数。

注意: 将多个同列的OR条件用加法+连接,用>0判断是否至少满足一个条件。

5.3 混合条件(AND+OR)

如果需求是"华东或华南的A产品销售额",条件分解为:

  • 条件组1:(地区=华东 OR 地区=华南)——OR关系。
  • 条件组2:产品=A产品——AND关系(需要与条件组1同时满足)。
=SUMIFS(D:D, A:A, "华东", B:B, "A产品") + SUMIFS(D:D, A:A, "华南", B:B, "A产品")

分别处理两个OR分支,每个分支中再包含AND条件。


六、动态条件——使用单元格引用

6.1 引用单元格作为条件

将条件值放在单元格中,公式引用这些单元格,使条件可随时修改而无需编辑公式:

=COUNTIFS(A:A, E2, B:B, F2)
  • E2是地区条件(如"华东")。
  • F2是产品条件(如"A产品")。

6.2 使用连接符构建动态条件

当条件包含比较运算符时:

=COUNTIFS(C:C, ">="&G2, C:C, "<="&H2)
  • G2是起始日期。
  • H2是截止日期。

运算符(">=")和单元格引用之间用&连接。

6.3 条件的下拉菜单联动

在E2和F2中设置下拉菜单,让用户通过选择下拉值动态改变条件——公式结果自动更新。这是"交互式统计报表"的常见设计模式。


七、跨表统计

7.1 引用其他工作表的区域

COUNTIFS和SUMIFS的区域可以引用其他工作表:

=COUNTIFS(数据源!A:A, "华东", 数据源!B:B, "A产品")

7.2 跨工作簿的注意事项

统计函数支持引用其他工作簿中的区域,但需要注意:

  • 被引用的工作簿必须处于打开状态,否则公式返回#REF!错误。
  • 工作簿路径发生变化时,链接会断裂。

建议: 将需要统计的数据汇总到当前工作簿中,使用"多表合并"功能(VSTACK或合并计算)将多个数据源整合为一个数据表,然后基于这个数据表执行统计——这样可以避免跨工作簿引用的链接断裂问题。

7.3 统计多个工作表中的数据

如果需要统计"所有Sheet中满足条件的数据总和"(不跨工作簿,在同一个工作簿内的多个Sheet中统计),不能直接把SUMIFS用在多个Sheet上。可以使用多个SUMIFS相加,或者先用VSTACK将数据堆叠后再统计(但VSTACK只在较新版本中可用)。

一个可以不用VSTACK的方法: 使用INDIRECT函数结合多个工作表名称来构建条件区域的引用,但这种方法对数据格式和位置一致性要求较高。


八、实战案例

8.1 销售业绩统计

数据表: A列=销售日期、B列=销售员姓名、C列=地区、D列=产品、E列=销售额。

需求1: 统计2026年第一季度的总销售额。

=SUMIFS(E:E, A:A, ">="&DATE(2026,1,1), A:A, "<="&DATE(2026,3,31))

需求2: 统计2026年6月华东或华南地区,A产品销售额大于5000元的订单数量。

=COUNTIFS(A:A, ">="&DATE(2026,6,1), A:A, "<="&DATE(2026,6,30), C:C, "华东", D:D, "A产品", E:E, ">5000") + COUNTIFS(A:A, ">="&DATE(2026,6,1), A:A, "<="&DATE(2026,6,30), C:C, "华南", D:D, "A产品", E:E, ">5000")

8.2 员工考勤统计

数据表: A列=员工姓名、B列=月份、C列=出勤天数。

需求: 统计出勤天数满勤(22天及以上)的员工数量。

=COUNTIFS(C:C, ">=22")

需求: 统计2026年6月出勤天数超过20天的员工数量。

=COUNTIFS(B:B, 6, C:C, ">20")

前提是月份列是数字(如6),不是文本。

8.3 库存预警

数据表: A列=产品名称、B列=库存数量、C列=安全库存量。

需求: 统计库存低于安全库存的产品数量。

=COUNTIFS(A:A, "<>", B:B, "<"&C:C)

需求: 计算需要补货的总数量(安全库存-当前库存,只取正数)。

=SUMIFS(B:B, A:A, "<>", B:B, "<"&C:C) —— 这只是统计低于安全库存的数量总和,而不是补货量本身。

计算准确的补货量,需要一个辅助列D,D列公式为=IF(B2<C2, C2-B2, 0),然后对D列直接求和。如果希望在一个单元格中完成补货需求计算,可以使用数组公式。


九、常见问题

9.1 COUNTIFS/SUMIFS返回0

  • 最常见的排查方向:确认条件值是否匹配——条件值与数据表中的值可能看起来相同但实际不同。检查是否存在不可见空格(使用TRIM是否解决了问题?)。
  • 检查数据类型是否一致——文本"100"和数值100在COUNTIFS中不会互相匹配。
  • 检查比较运算符是否使用正确——特别是日期条件和包含运算符的文本条件。

9.2 区域大小不一致报错

COUNTIFS和SUMIFS要求所有区域的行数或列数一致。如果条件区域1是A2:A100,而条件区域2是B2:B101——会报错。在整列引用(如A:A)时不存在这个问题。

9.3 通配符在数值条件中不生效

通配符*?只适用于文本条件。在数值条件中使用不会报错,但也不会按预期进行模糊匹配——WPS会将*视为普通字符。

9.4 性能问题(大数据量时计算慢)

COUNTIFS和SUMIFS在数千行到数万行的数据量中性能良好。但如果数据量超过10万行,且公式中包含多个条件,计算速度会显著下降。

  • 尽量减少条件数量——每一��条件都需要一次全列扫描。
  • 优先使用精确匹配(不带通配符的通配引),通配符匹配比精确匹配消耗更多计算资源。
  • 如果长期面对10万行以上的数据,建议在辅助列中用布尔值先预处理条件(如=1*(A2="华东")),然后对辅助列做SUM求和。

十、IFS函数家族速查

函数 作用 语法
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表格中"万能条件统计"的核心函数。它们用简单一致的语法,解决了多条件计数、求和、平均值等最常见的统计需求。与使用辅助列或数组公式的替换方案相比:

  • 比辅助列方案更简洁——一条公式替代了一整列的条件判断。
  • 比数组公式更容易理解和维护——IFS系列的语法更加直观,不需要Ctrl+Shift+Enter。
  • 比VLOOKUP+SUM的组合更直接——不需要先查找再汇总,一次完成。

掌握COUNTIFS和SUMIFS,你将能够用一条公式灵活组合各种条件——无论是基于文本、数字还是日期的筛选——快速得出统计数据。你的报表,从此不再需要"一个个筛选、一次次求和"的冗长操作流程。




本文相关标签

没有相关标签

正在获取下载地址...

请稍候