ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 多sheet分类汇总很慢

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-7-17 00:00 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我也不知道描述的对不对,根据data里面的数据,分类汇总,如sumifs函数功能,但是当sheet非常多,data里面数据超过5万的时候会很慢,求大神指点,可有简单的方法,或者思路。ps:看报表的人用的是03版excel。。。。。。

多个二维表按日期分类汇总.zip

13.26 KB, 下载次数: 22

TA的精华主题

TA的得分主题

发表于 2018-7-17 06:19 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-7-17 07:02 | 显示全部楼层
建议楼主结合附件举例说明,具体要怎样实现。
目前的附件看不太懂
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2018-7-17 12:55 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-7-17 14:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
数据透视表 多重合并就行吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-17 23:47 | 显示全部楼层
opiona 发表于 2018-7-17 06:19
http://club.excelhome.net/thread-1409141-1-1.html

非常感谢老师,提供链接!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-17 23:49 | 显示全部楼层
liulang0808 发表于 2018-7-17 07:02
建议楼主结合附件举例说明,具体要怎样实现。
目前的附件看不太懂

这个报表每日更新,把data里面的数据汇总到三个sheet里面,日期和甜品的表头都是按照顺序做好的

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-17 23:50 | 显示全部楼层
朱荣兴 发表于 2018-7-17 12:55
data工作表内的前几列数据是事先手工录入的????

对的,日期和第一列的表头都是提前定好的

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-17 23:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
魂断蓝桥 发表于 2018-7-17 14:23
数据透视表 多重合并就行吧

关键是我有很多个sheet0.0,数据量大的话会不会很卡

TA的精华主题

TA的得分主题

发表于 2018-7-18 09:07 | 显示全部楼层
  1.     Set SHX = Worksheets("data")
  2.     For Each SH In Worksheets
  3.         If SH.Name <> SHX.Name Then
  4.             SH.Delete
  5.         End If
  6.     Next
  7.     Str_coon = "HDR=yes';Data Source =" & ThisWorkbook.FullName     '//OFFICE2003,2007 通用
  8.    
  9.    
  10.     Rem  先获取要拆分字段的不重复值
  11.     StrSQL = "SELECT DISTINCT [品类]"
  12.     StrSQL = StrSQL & " FROM [" & SHX.Name & "$]"
  13.     StrSQL = StrSQL & " WHERE NOT [品类] IS NULL AND LEN([品类])>0"
  14.     ARX = GET_SQL_To_Arr(StrSQL, Str_coon, False)  '//不重复姓名放入二维数组
  15.    
  16.     If ARX(0, 0) <> "" And ARX(0, 0) <> "Error" Then
  17.         ICINT = UBound(ARX) + 1
  18.         
  19.         For X = 0 To ICINT - 1 '//循环每一个值
  20.             Rem  提示信息,在状态栏显示
  21.             Application.StatusBar = "需拆分总数:" & ICINT & " 个,当前是第:" & X + 1 & " 个,当前品类是:" & ARX(X, 0)
  22.             DoEvents
  23.             
  24.             Rem 查询对应数据
  25.             StrSQL = ""
  26.             StrSQL = StrSQL & "SELECT DISTINCT [日期]"
  27.             StrSQL = StrSQL & " FROM [" & SHX.Name & "$A1:IT]"
  28.             StrSQL = StrSQL & " WHERE [品类]='" & ARX(X, 0) & "'"
  29.             StrSQL = StrSQL & " ORDER BY [日期]"
  30.             BRX = GET_SQL_To_Arr(StrSQL, Str_coon, False)
  31.             
  32.             If BRX(0, 0) <> "" And BRX(0, 0) <> "Error" Then '//没有数据,在不保存
  33.                 Set SHW = Worksheets.Add
  34.                 SHW.Name = "" & ARX(X, 0)
  35.                 StrSQL = "SELECT [甜品]"
  36.                 For I = 0 To UBound(BRX, 1)
  37.                     StrSQL = StrSQL & ",SUM(IIF([日期]=#" & BRX(I, 0) & "#,[金额],0)) AS [" & Format(BRX(I, 0), "yyyy-MM-dd") & "]"
  38.                 Next
  39.                 StrSQL = StrSQL & " FROM [" & SHX.Name & "$]"
  40.                 StrSQL = StrSQL & " WHERE [品类]='" & ARX(X, 0) & "'"
  41.                 StrSQL = StrSQL & " GROUP BY [甜品]"

  42.                 SQLARR = GET_SQL_To_Arr(StrSQL, Str_coon, True)
  43.                 SHW.Range("A1").Value = ARX(X, 0)
  44.                 SHW.Range("A2").Resize(UBound(SQLARR, 1) + 1, UBound(SQLARR, 2) + 1) = SQLARR
  45.             End If
  46.         Next
  47.     Else
  48.         MsgBox "未发现拆分依据 需要的值!", vbInformation, "北极狐提示!!"
  49.     End If
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-10 16:59 , Processed in 0.037150 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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