ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: Fae

[原创] 求助---提高工作表运行速度

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-5-27 00:31 | 显示全部楼层

回复 30楼 Fae 的帖子

26楼的附件看过了吗,公式符合你的要求吗?觉得速度提升了吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-27 23:13 | 显示全部楼层
O(∩_∩)O谢谢!

我下下来了,依大侠的公式放在现有我用的资料库里,还是很慢。

我想慢的原因主要还是在那两个“计时工资表”与“计件工资表”里。因为我的“数据源”有一万多差不多两万行

TA的精华主题

TA的得分主题

发表于 2009-5-28 14:12 | 显示全部楼层
原帖由 Fae 于 2009-5-27 23:13 发表
O(∩_∩)O谢谢!

我下下来了,依大侠的公式放在现有我用的资料库里,还是很慢。

我想慢的原因主要还是在那两个“计时工资表”与“计件工资表”里。因为我的“数据源”有一万多差不多两万行


一项一项的说吧
一、还是先说一下瓶颈。
1. 测试你看过了吗?
订单实际人工工资统计表 D列公式是最卡的,
计件工资总表&计时工资总表的工号人名部分的公式次之…
我知道你的心结是在MMULT部分,觉得那里是最影响速度的。
其实不尽然,
计件工资总表&计时工资总表 数据区MMULT公式测速 100000次运算 耗时 才3.02秒
虽然在源数据里数据增大后,即MMULT取值范围变大时,不可否认的要对整体速度有影响,但因为其返回的是数值,按你表中的公式关系树来看,其卡慢速度的影响要比订单实际人工工资统计表 D列公式和计件工资总表&计时工资总表的工号人名部分的公式的影响要小得多,明白否?
2. MMULT部分
如按你所说,“数据源”有一万多差不多两万行的数据并还要逐渐增多,
那么MMULT根本就无法满足你的多条件求和的需求,
czzqb版主做过测试,由于EXCEL本身的限制。MMULT()公式结果的单元格数量不能超过5461个,超过则失效。
参见3楼说明 http://club.excelhome.net/viewth ... amp;highlight=mmult
所以,我不知道数据在一万多差不多两万行的时候,MMULT公式怎么满足你需求的...
3. 个人体会
在你1楼和3楼的帮公式减肥,调整公式求助角度出发的话,
26楼的附件是在你提供的数据中做出的公式优化调整,在与你原文件做速度比对时,客观的说,速度是有大幅度提升的,已经达到了公式优化的初衷,注意:这是在提供的现有数据基础上的速度比对,而不是在继续增加数据量的基础上。
但你“数据源”有一万多差不多两万行时,公式再怎么优化,卡慢也是必然的。也就是说,要达到你心目中的速度要求,不是优化公式能解决的…
二. 解决方法的个人建议
1. 公式:
如果还是想用公式解决的话,那么心态上就要先作一下调整,降低一点要求(前面说过,“数据源”有一万多差不多两万行时,公式再怎么优化,卡慢也是必然的)。用添加大量辅助列的方法,尽量不要用数组的方法返回数值,用空间换时间,这样速度还可大幅提升,我估计数据一万多差不多两万行时也基本能满足你需求,会有点卡,基本能接受,至少不会象数组那样奇慢无比甚至当机。这是基于与你原公式做比对的基础上的,数据一万多差不多两万行时,MMULT()公式已经超出了5461个的范围,无法算出结果了,sumproduct的话就更不谈了,那么多sumproduct公式在表中,且取值范围那么大,重新计算一下的话,没一二分钟是搞不定的…(不想大动干戈的话,懒人推荐)
2. 数据透视表:
不想用VBA的话,数据透视表是不二选择。
计时工资总表、计件工资总表、订单实际人工工资统计表的结构都不复杂,中规中矩,用数据透视表做出还是比较容易的,速度也是非常快的。(强烈推荐)
3. VBA
(1). 高级筛选+公式(辅助)
(2). SQL+公式(辅助)
(3). SQL+ACCESS

一家之言,仅供参考。

[ 本帖最后由 Simon_Zhu 于 2009-5-28 14:20 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-5-28 20:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
表"订单实际人工工资统计表" 做了个SQL+公式(辅助)的实例供参考,见附件。

[ 本帖最后由 Simon_Zhu 于 2009-5-29 19:23 编辑 ]

测试 new4.rar

108.61 KB, 下载次数: 52

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-2 21:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢Simon_Zhu详细的解说及帮助。O(∩_∩)O谢

附档的速度真的非常快了,但我不是很理解,(对vba不大懂)
能否在这给我上一课?

衷心感谢!

TA的精华主题

TA的得分主题

发表于 2009-6-2 21:42 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-12-24 11:25 | 显示全部楼层
Simon_Zhu 发表于 2009-5-25 15:17
先说说关于提速方面通用的一些要点:
1. 公式方面
一般来说

你是咋测试的,教教呗,我也测测我的。

TA的精华主题

TA的得分主题

发表于 2014-2-3 08:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Simon_Zhu 发表于 2009-5-28 14:12
一项一项的说吧
一、还是先说一下瓶颈。
1. 测试你看过了吗?

新年快乐,让我知道了我的工作簿为什么很慢的原因。试着优化一下吧
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-13 11:32 , Processed in 0.034991 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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