ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 根据多列不同字段进行分类汇总多列数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-7-18 23:52 | 显示全部楼层 |阅读模式
需求说明:根据多列不同字段进行分类汇总多列数据,请各位高手指点,多谢。
例如,第2行B-F列与第4行B-F列是完全相同的,所以归为一类 ,虽然第4行和第7行的第B列也都是“1100”但第C列就不同了,所以不归为一类 ,然后根据相同的科目汇总后面各月的数值。
源表
源表.jpg
结果表
结果.jpg
详见附件
多列字段分类汇总.rar (6.86 KB, 下载次数: 89)

TA的精华主题

TA的得分主题

发表于 2012-7-19 00:22 | 显示全部楼层

  1. Public Sub test()
  2.    Application.ScreenUpdating = False
  3.    Dim r, d(), i As Long, j As Long, s As String, q
  4.    arr = Sheet1.[a1].CurrentRegion
  5.     ReDim d(1 To UBound(arr, 2) - 6)
  6. For j = 1 To UBound(arr, 2) - 6
  7.     Set d(j) = CreateObject("scripting.dictionary")
  8. Next
  9.    For j = 1 To UBound(arr, 2) - 6
  10.      For i = 1 To UBound(arr)
  11.        s = arr(i, 2) & "," & arr(i, 3) & "," & arr(i, 4) & "," & arr(i, 5) & "," & arr(i, 6)
  12.        d(j)(s) = d(j)(s) + arr(i, j + 6)
  13.      Next
  14.    Next
  15.       r = d(1).keys
  16.       For i = 1 To d(1).Count
  17.         q = Split(r(i - 1), ",")
  18.         Cells(i, 1).Resize(, 5) = q
  19.       Next
  20.      For j = 1 To UBound(arr, 2) - 6
  21.        Cells(1, j + 5).Resize(d(j).Count, 1) = Application.Transpose(d(j).items)
  22.      Next
  23.      Erase d, arr, r, q
  24.    Application.ScreenUpdating = True
  25.      MsgBox "整理完成!"
  26. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2012-7-19 00:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
多列字段分类汇总.rar (14.56 KB, 下载次数: 516)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2017-6-3 15:33 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-10-8 19:38 | 显示全部楼层

能不能搞成变量 为合并计算的依据列可以任意选择 你的都是固定的 让变量自己选择的形式才是最好的

TA的精华主题

TA的得分主题

发表于 2018-10-8 19:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

你的s = arr(i, 2) & "," & arr(i, 3) & "," & arr(i, 4) & "," & arr(i, 5) & "," & arr(i, 6)这一串怎么变为可以动态选择才是智能的

TA的精华主题

TA的得分主题

发表于 2018-10-8 19:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
s = arr(i, 2) & "," & arr(i, 3) & "," & arr(i, 4) & "," & arr(i, 5) & "," & arr(i, 6) 如果只选择2列喃??

TA的精华主题

TA的得分主题

发表于 2018-10-8 19:42 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-10-8 19:51 | 显示全部楼层
LMY123 发表于 2017-6-3 15:33
字典多条件多列汇总

你真好耍 一个问题不回答 就总结 有意思吗???
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 08:36 , Processed in 0.038883 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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