Excel VBA:按日期汇总计算输出结果(sumif)

问题场景

1)按日期将C列的金额累计汇总
2)按日期和"支出/收入"汇总每日金额

PS:直接输出结果,不需要公式
![在这里插入图片描述](https://img-blog.csdnimg.cn/7a7844a59ee34fccb490ad6f123ecea8.p

参数定义&函数说明

参数定义:

  • Range格式定义汇总范围
  • Long 格式定义参数。因为后续参数长度会超过32767,所以选取Long。
    • Long(长整型)变量存储为带符号的 32 位(4 字节)数字,值范围从 -2,147,483,648 到 2,147,483,647。
    • Integer(整形)Integer 变量存储为 16 位(2 字节)数字,值范围为 -32,768 至 32,767。

数据格式参考

函数使用:

  • WorksheetFunction.Round (expression, [ numdecimalplaces ])
  • WorksheetFunction.SumIfs (Arg1、Arg2、Arg3…)

函数参考

1)结果代码:每日累计汇总金额

Sub 每日累计汇总金额()

    Application.ScreenUpdating = False
    
    Dim sumRange As Range
    Dim criteriaRange_date As Range
    Dim e As Long, f As Long, g As Long

     '定义Range
    Set sumRange = Sheets("Sheet1").Range("C2:C31") '金额
    Set criteriaRange_date = Sheets("Sheet1").Range("A2:A31") '日期
    
    Sheets("Sheet1").Select
    e = Range("K1048573").End(xlUp).Row ' 初始行数 - 1
    f = Range("J1048573").End(xlUp).Row '结束行数
    
    '更新
    For g = e + 1 To f
            '累计
            Sheets("Sheet1").Cells(g, 11) = WorksheetFunction.Round(WorksheetFunction.SumIfs(sumRange, criteriaRange_date, "<=" & Cells(g, 10)), 2)
       Next g
    
End Sub

2)结果代码:每日支出收入金额

Sub 每日支出收入金额()

    Application.ScreenUpdating = False
    
    Dim sumRange As Range
    Dim criteriaRange As Range
    Dim criteriaRange_date As Range
    Dim e As Long, f As Long, g As Long

     '定义Range
    Set sumRange = Sheets("Sheet1").Range("C2:C31") '金额
    Set criteriaRange = Sheets("Sheet1").Range("D2:D31") '分类
    Set criteriaRange_date = Sheets("Sheet1").Range("A2:A31") '日期
    
    Sheets("Sheet1").Select
    e = Range("O1048573").End(xlUp).Row ' 初始行数 - 1
    f = Range("N1048573").End(xlUp).Row '结束行数
    
    '更新
    For g = e + 1 To f
            '累计
            Sheets("Sheet1").Cells(g, 15) = WorksheetFunction.Round(WorksheetFunction.SumIfs(sumRange, criteriaRange, Cells(g, 14), criteriaRange_date, "=" & Cells(g, 13)), 2)
       Next g
    
End Sub

运行后结果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值