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

求助:如何用Excel VBA实现COUNTIFS函数的遍历统计功能

用VBA实现COUNTIFS批量统计功能

以下是两种可行的实现方案,均满足遍历Sheet1指定区域并从Sheet2提取统计数据的需求:

方案1:循环写入计算结果(值)

该方案直接将COUNTIFS的计算结果写入单元格,不保留公式,适合不需要后续自动更新数据的场景:

Sub CountIfsheet1()
    Dim wb As Workbook
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
    Dim cell As Range
    Dim lastRowWs2 As Long
    Dim criteria1Range As Range
    Dim criteria2Range As Range
    
    Set wb = ThisWorkbook
    Set ws1 = wb.Sheets("Sheet1")
    Set ws2 = wb.Sheets("Sheet2")
    
    ' 调整列号匹配实际数据位置:假设Criteria1在Sheet2的A列,Criteria2在B列,表头在第1行
    lastRowWs2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row
    Set criteria1Range = ws2.Range("A2:A" & lastRowWs2) ' 跳过表头,取实际数据范围
    Set criteria2Range = ws2.Range("B2:B" & lastRowWs2)
    
    ' 遍历Sheet1的B7:B40,对应A列的个体名称:如果B7对应A8,把Offset(0, -1)改成Offset(1, -1)
    For Each cell In ws1.Range("B7:B40")
        cell.Value = Application.WorksheetFunction.CountIfs(criteria1Range, cell.Offset(0, -1).Value, criteria2Range, "Yes")
    Next cell
End Sub

方案2:批量设置COUNTIFS公式(保留公式)

该方案给目标区域批量写入公式,后续Sheet2数据更新时,Sheet1的统计结果会自动刷新,适合需要动态更新的场景:

Sub SetCountIfsFormula()
    Dim wb As Workbook
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
    Dim criteria1Col As String
    Dim criteria2Col As String
    Dim lastRowWs2 As Long
    
    Set wb = ThisWorkbook
    Set ws1 = wb.Sheets("Sheet1")
    Set ws2 = wb.Sheets("Sheet2")
    
    ' 调整列标识匹配实际数据位置
    criteria1Col = "A" ' Criteria1所在列
    criteria2Col = "B" ' Criteria2所在列
    lastRowWs2 = ws2.Cells(ws2.Rows.Count, criteria1Col).End(xlUp).Row
    
    ' 批量写入公式:如果B7对应A8,把公式里的A7改成A8
    ws1.Range("B7:B40").Formula = "=COUNTIFS(" & ws2.Name & "!" & criteria1Col & "2:" & criteria1Col & lastRowWs2 & ",A7," & ws2.Name & "!" & criteria2Col & "2:" & criteria2Col & lastRowWs2 & ",""Yes"")"
End Sub

关键注意事项

  • 请根据实际数据位置调整代码中的列标识(如"A"、"B")和行号(如"A2"),确保匹配Sheet2中Criteria1、Criteria2的实际范围。
  • 若Sheet1的B7对应A8而非A7,需修改代码中cell.Offset(0, -1)为cell.Offset(1, -1),或公式中的A7改为A8。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 13:23:19