ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 公式的效率跟叠加引用单元格有没有关系?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-3-5 11:01 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
假设有个表,A列是要处理的源数据,有几千乃至几万行,右边有若干列,有两种情况:

第一种,B列用公式根据A列得到一个值,C列根据B列再用公式得到一个值,D列根据C列用公式得到一个值……
第二种,从B列往后所有列都只用A列的源数据用公式求值。

在不考虑所使用函数的运算效率的情况下,这两种情况做出来的表格运算效率是一样的吗?
个人觉得第二种方式运算速度应该更快一些,第一种公式要先算出来B列的值后才能开始算C列……这种情况下可能以机器的算力在单独运算一列的时候并没有火力全开,算力被浪费了。不知道对否?

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-5 11:06 | 显示全部楼层
感觉公式在引用某一个单元格,而这个单元格是由公式得到的值的情况下,所引用的并非这个单元格的值,而是引用的这个单元格的公式,比如A1=1,A2=3,A3=A1/A2,A4=A3*A2,结果会等于1而且是实实在在的1而不是0.999999999。如果是这样的话在第一种情况下后边的公式实际上长的没法看了

TA的精华主题

TA的得分主题

发表于 2024-3-5 11:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
引用单元格数量影响计算速度,SUM($C$1:C1)下拉,SUM($C$1:C20000)总计要计算1+2+3+4+……20000,总计约2亿多次,我们换一个方法计算这一列:在D1单元格中使用公式:=c1,然后在D2单元格中使用公式:=c2+d1,下拉拖曳填充,这个方法中引用了1+2+2+2+2=40000多少单元格,明显速度提升很多

TA的精华主题

TA的得分主题

发表于 2024-10-12 16:54 | 显示全部楼层
个人感觉
如果需要引用大量单元格区域,并且单元格区域内的内容还是其它函数返回的结果 的情况下

使用“名称管理器”来定义引用范围,然后再在新函数中使用“名称”来指代引用区域作为条件,可以大大加快运算速度;

感觉 EXCEL/WPS 是先计算“名称管理器”,再把 “名称管理器”中的各种名称的计算结果作为内存结果,新函数在使用“名称”作为条件时,是直接从内存中提取结果,而不是再每个单元格重新计算一次的



TA的精华主题

TA的得分主题

发表于 2024-10-15 22:26 | 显示全部楼层
本帖最后由 shixv 于 2024-10-15 22:34 编辑

会有影响,
当公式复杂时比较显著,之前试过,用迭代计算(设置最大迭代次数为1)在a1格子里面输入=a1+1可以看观察到每次计算时工作表重算了多少次

复杂公式(通常使用了易失性函数)运算时你有几列工作表就会重算几次
但是简单公式通常只会使整个工作表重算1次,这时使用辅助列可以提升公式运行速度


不过迭代计算恰好可以避免复杂公式的重算问题,以下时迭代计算优化例子:
image.jpg


您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 03:00 , Processed in 0.031837 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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