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

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

"统计华南地区、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,你将能够用一条公式灵活组合各种条件——无论是基于文本、数字还是日期的筛选——快速得出统计数据。你的报表,从此不再需要"一个个筛选、一次次求和"的冗长操作流程。




本文相关标签

没有相关标签