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

如何在Excel中遍历行并实现多条件求和?

解决Excel中按条件累加并自动停止在空行的问题

方法一:使用SUMIFS函数(无需编程,适合新手)

直接在E7单元格输入以下公式即可自动计算符合条件的D列数值之和,且仅计算到第一个空行之前的行:

=SUMIFS(D:D, A:A, "MATCHING_A", B:B, "MATCHING_B", C:C, "MATCHING_C", A:A, "<>")

公式解释:

  • SUMIFS:Excel多条件求和函数,核心逻辑是按指定条件筛选后求和
  • D:D:指定要求和的目标列(即D列的数值)
  • A:A, "MATCHING_A":第一个筛选条件:A列值必须等于MATCHING_A
  • B:B, "MATCHING_B":第二个筛选条件:B列值必须等于MATCHING_B
  • C:C, "MATCHING_C":第三个筛选条件:C列值必须等于MATCHING_C
  • A:A, "<>":最后一个条件限制仅计算A列不为空的行,自动在第一个空行处停止计算

方法二:使用VBA宏(适配动态数据场景)

如果表格数据会频繁更新,或者需要自动遍历空行完成计算,可使用VBA宏实现:

  1. 打开Excel文件,按下Alt + F11打开VBA编辑器
  2. 右键点击左侧目标工作表名称(如Sheet1),选择「插入」→「模块」
  3. 在代码窗口粘贴以下代码:
Sub SumMatchingRows()
    Dim ws As Worksheet
    Dim i As Long
    Dim total As Double
    
    ' 指定操作的工作表,将"Sheet1"改为你的实际工作表名
    Set ws = ThisWorkbook.Sheets("Sheet1")
    total = 0
    i = 1
    
    ' 循环遍历行,直到A列为空(触发空行停止)
    Do While ws.Cells(i, "A").Value <> ""
        ' 检查当前行是否满足三个匹配条件
        If ws.Cells(i, "A") = "MATCHING_A" And _
           ws.Cells(i, "B") = "MATCHING_B" And _
           ws.Cells(i, "C") = "MATCHING_C" Then
            total = total + ws.Cells(i, "D").Value
        End If
        i = i + 1
    Loop
    
    ' 将计算结果写入E7单元格
    ws.Cells(7, "E").Value = total
End Sub
  1. 按下F5运行宏,或回到Excel界面通过「开发工具」→「宏」选择SumMatchingRows执行

宏的优势:

  • 自动识别第一个空行并停止遍历,无需手动调整公式范围
  • 可配合Worksheet_Change事件,实现数据更新时自动重新计算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 12:18:15