You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel中多COUNTIF组合统计是否有简化公式解决方案?

解决COUNTIFS嵌套逻辑过长的替代方案

方法1:用SUMPRODUCT简化多条件判断

SUMPRODUCT可以直接整合「匹配指定值」或「全部匹配」的逻辑,无需嵌套IF/AND,公式结构统一,新增组合列时只需复制调整参数:

=SUMPRODUCT(
    (故障数据库!$D:$D>=DATE(YEAR($A2),MONTH($A2),1))*(故障数据库!$D:$D<=EOMONTH($A2,0)),
    (IF(B$1="all",1,故障数据库!$B:$B=B$1)),
    (IF(C$1="all",1,故障数据库!$C:$C=C$1))
)
  • 第一部分:精准匹配目标月份的日期范围(避免跨年份的MONTH判断错误)
  • 第二/第三部分:用IF判断列标题是否为"all",是则返回1(所有行都满足),否则匹配对应位置/系统
  • 所有条件相乘后求和,得到符合条件的故障数量

方法2:动态数组函数(Excel 365/2021+)

利用FILTER+COUNT组合,逻辑更直观,公式输入后自动填充整列/整行:

=COUNT(
    FILTER(
        故障数据库!$A:$A,
        (故障数据库!$D:$D>=DATE(YEAR($A2),MONTH($A2),1))*(故障数据库!$D:$D<=EOMONTH($A2,0)),
        IF(B$1="all",TRUE,故障数据库!$B:$B=B$1),
        IF(C$1="all",TRUE,故障数据库!$C:$C=C$1)
    )
)
  • FILTER筛选出所有满足日期、位置、系统条件的记录,COUNT统计筛选结果的行数
  • 动态数组特性支持公式自动扩展,新增组合列时直接拖动填充即可

方法3:数据透视表(零公式方案)

如果不需要实时联动输入,数据透视表是最省心的选择,步骤如下:

  1. 选中故障数据库的全部数据区域,点击「插入」→「数据透视表」
  2. 字段设置:
    • 把「日期」拖到「行」区域,右键点击行标签→「组合」→选择「月份」和「年份」
    • 把「位置」「系统」拖到「列」区域
    • 把任意非空字段(比如「故障ID」)拖到「值」区域,设置为「计数」
  3. 后续新增组合时,只需在透视表的列标签下拉菜单选择「全部」或具体选项,刷新透视表即可自动统计

方法4:自定义VBA函数(灵活扩展)

如果需要更复杂的自定义逻辑,可编写VBA函数统一处理判断:

  1. 按Alt+F11打开VBA编辑器,插入模块,粘贴以下代码:
Function CountFaults(targetDate As Date, targetLoc As String, targetSys As String) As Long
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("故障数据库")
    Dim lastRow As Long, i As Long, count As Long
    lastRow = ws.Cells(ws.Rows.Count, "D").End(xlUp).Row
    count = 0
    
    For i = 2 To lastRow '假设第1行是表头
        '判断日期是否在目标月份
        If Year(ws.Cells(i, "D")) = Year(targetDate) And Month(ws.Cells(i, "D")) = Month(targetDate) Then
            '判断位置匹配逻辑
            If targetLoc = "all" Or ws.Cells(i, "B") = targetLoc Then
                '判断系统匹配逻辑
                If targetSys = "all" Or ws.Cells(i, "C") = targetSys Then
                    count = count + 1
                End If
            End If
        End If
    Next i
    CountFaults = count
End Function
  1. 在统计表格单元格中调用函数:
=CountFaults($A2, B$1, C$1)
  • 函数参数直接对应日期、位置、系统,无论多少组合列,公式结构完全一致

内容的提问来源于stack exchange,提问作者anesbbs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 11:45:37