ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 488|回复: 20

[求助] 按日期将两个工作表的数据汇总在一起

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-11-5 14:04 | 显示全部楼层 |阅读模式
我想将两个工作表的相同日期的金额按条件加起来分两列汇总在一起,我只能实现单个工作表汇总,求两个工作表的数据同时汇总。
123123.JPG

数据.zip

22.71 KB, 下载次数: 23

TA的精华主题

TA的得分主题

发表于 2024-11-5 14:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
全表自动生成,工作表、数据增减不用改代码。

3efd8af7-f2d8-4a70-bb23-4c74c29d6e76.png

数据.zip

25.94 KB, 下载次数: 23

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-11-5 14:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
参与一下。。。

caf602a5-aad7-4dad-82b1-3afc8ddc6415.png

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-11-5 14:38 | 显示全部楼层
现在的公式~
image.png

数据.zip

23.79 KB, 下载次数: 5

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-11-5 14:42 | 显示全部楼层
汇总数据........

数据.zip

29.92 KB, 下载次数: 10

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-11-5 14:44 | 显示全部楼层
参与一下,仅供参考,,,
image.png
结果跟楼主模拟有点出入
image.png

数据(3).zip

26.56 KB, 下载次数: 10

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-11-5 14:44 | 显示全部楼层
待明如下。。。
Sub test()
    Dim wb As Workbook, sht As Worksheet
    Set wb = ThisWorkbook
    Set sht = wb.Sheets("统计表")
    arr = sht.Range("b1:b" & sht.Cells(Rows.Count, 2).End(3).Row)
    Set d = CreateObject("scripting.dictionary")
    For i = 2 To UBound(arr)
        s = arr(i, 1)
        d(s) = i
    Next
    ReDim crr(1 To UBound(arr), 1 To 100)
    For Each sh In wb.Sheets
        If sh.Name <> sht.Name Then
            brr = sh.[a1].CurrentRegion
            If IsArray(brr) Then
                m = m + 1
                crr(1, m) = sh.Name
                For i = 2 To UBound(brr)
                    If d.exists(brr(i, 1)) Then
                        crr(d(brr(i, 1)), m) = crr(d(brr(i, 1)), m) + brr(i, 2)
                    End If
                Next
            End If
        End If
    Next
    sht.[c1].Resize(UBound(crr), m) = crr
    Beep
    Set d = Nothing
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-11-5 14:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Sub limonet()
    Dim Cn As Object, StrSQL$, Sht As Worksheet
    Set Cn = CreateObject("Adodb.Connection")
    Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.FullName
    For Each Sht In Worksheets
        If Sht.Name <> ActiveSheet.Name Then
            StrSQL = StrSQL & " Union ALl Select 日期,Sum(金额) as Amount,'" & Sht.Name & "' as 支出 From [" & Sht.Name & "$] Group By 日期"
        End If
    Next Sht
    StrSQL = "TransForm Sum(Amount) Select 日期 From (" & Mid(StrSQL, 12) & ") Group By 日期 Pivot 支出"
    Range("B2").CopyFromRecordset Cn.Execute(StrSQL)
End Sub

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-11-5 14:56 | 显示全部楼层
关键字:group by+union all+pivot
GIF 2024-11-05 14-55-59.gif

数据.7z

25.38 KB, 下载次数: 8

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-11-5 15:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. Sub qs()
  2. Dim arr, i, dic
  3. Set dic = CreateObject("scripting.dictionary")
  4. ReDim brr(1 To 20000, 1 To 3)
  5. m = 1
  6. a = [{"A支出","B支出"}]
  7. For i = 1 To UBound(a)
  8.     arr = Sheets(a(i)).UsedRange.Value
  9.     For ii = 2 To UBound(arr)
  10.     dt = Format(CDate(arr(ii, 1)), "yyyy/mm")
  11.         If Not dic.exists(dt) Then
  12.             m = m + 1
  13.             dic(dt) = m
  14.             brr(m, 1) = dt
  15.             If i = 1 Then brr(m, 2) = arr(ii, 2) Else brr(m, 3) = arr(ii, 2)
  16.         Else
  17.             rw = dic(dt)
  18.             If i = 1 Then brr(rw, 2) = brr(rw, 2) + arr(ii, 2) Else brr(rw, 3) = brr(rw, 3) + arr(ii, 2)
  19.         End If
  20.     Next ii
  21. Next
  22. brr(1, 1) = "日期": brr(1, 2) = "A支出": brr(1, 3) = "B支出"
  23. With Sheets("统计表")
  24. .[b1].Resize(20000, 3) = Empty
  25. .[b1].Resize(m - 1, 3) = brr
  26. End With
  27. Set dic = Nothing
  28. End Sub
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 21:42 , Processed in 0.051756 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表