ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] [函数用法讨论系列17] 关于易失函数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-5-26 08:40 | 显示全部楼层
以后写函数能不用易失函数就不用了,谢谢楼主给出的测试!

TA的精华主题

TA的得分主题

发表于 2006-5-26 08:46 | 显示全部楼层

我有个疑问,我的原始数据有上万条,统计的时候因为条件多所以要用到数组函数,

那我是以整个原始数据进行数组函数快,还是用indirect函数连接分段计算快?(如果用indirect的话,要用到很多的它来连接公式)

cf

对于整个文件来说影响谁大点?
[此贴子已经被作者于2006-5-26 8:47:38编辑过]

TA的精华主题

TA的得分主题

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

22楼问题比较模糊。

另:我有个新问题,“Index在95之后的版本已经不是易失性函数了。”

查阅帮助文件〉关于更正公式〉公式求值

“以下的函数在每次工作表更改时都会进行重新计算,并会导致“公式求值”给出的结果与在单元格中显示的不同:RAND、AREAS、INDEX、OFFSET、CELL、INDIRECT、ROWS、COLUMNS、NOW、TODAY 和 RANDBETWEEN。”
——Excel2003版。

怎么INDEX还是上了黑名单呢?一开始不敢确认。早上碰到这个(原题http://club.excelhome.net/dispbbs.asp?boardid=3&id=169478&star=1#169478,附件已传过来),故意绕开offset试试用Index+match做,结果发现:

当仅是在数据有效性序列应用时,打开关闭都不会提示保存。而当把数据有效性的公式放在表格中时,就会有此提示。

不解。

j1qZvRDK.rar (2.72 KB, 下载次数: 88)
[此贴子已经被作者于2006-5-30 11:19:45编辑过]

TA的精华主题

TA的得分主题

发表于 2006-5-30 11:23 | 显示全部楼层

测试:

原公式:=INDEX($D$7:$K$7,MATCH($A$1,$D$6:$K$6,)):INDEX($D:$K,MATCH("々",INDEX($D:$K,,MATCH($A$1,$D$6:$K$6,))),MATCH($A$1,$D$6:$K$6,))

分成2不分——即冒号两边的两部分。

分别在表格输入公式=INDEX($D$7:$K$7,MATCH($A$1,$D$6:$K$6,))和=INDEX($D:$K,MATCH("々",INDEX($D:$K,,MATCH($A$1,$D$6:$K$6,))),MATCH($A$1,$D$6:$K$6,))

保存关闭之后,再打开关闭,则不会有提示保存的问题。

换个简单的: =SUM(INDEX(B:B,2):INDEX(B:B,2))——即含有这种类型的引用也会有提示保存。 其实就是Sum(B2)。 原来一直因为Offset的易失性而改用Index做“动态引用”,没想到还是有提示保存。 再测试: 定义名称x=INDEX(B:B,2):INDEX(B:B,2),如果表格中没用到X,不会提示保存。如果用了,比如=sum(x),还是会提示保存。 数据有效性不会提示保存。
[此贴子已经被作者于2006-5-30 11:31:09编辑过]

TA的精华主题

TA的得分主题

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

我试了一下,这和INDEX():INDEX()这种结构有关。如果不是以这种结构来使用INDEX,就不表现易失性。

不明白。

那么其他的被一楼否定的易失函数如ROWS()等,是不是也有类似情况?是什么样的情况下猜表现其易失性呢? ===== 网速太慢!才看见版主的测试,撞车了。
[此贴子已经被作者于2006-5-30 11:38:12编辑过]

TA的精华主题

TA的得分主题

发表于 2006-5-30 11:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
是的,包括A1:Index()的引用结构都是。如果单独用Index不会表现易失性。呵呵,我还试图替代offset并推广,看来白累了,嘻嘻。

TA的精华主题

TA的得分主题

发表于 2006-5-30 12:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

查阅帮助文件〉关于更正公式〉公式求值

“以下的函数在每次工作表更改时都会进行重新计算,并会导致“公式求值”给出的结果与在单元格中显示的不同:RAND、AREAS、INDEX、OFFSET、CELL、INDIRECT、ROWS、COLUMNS、NOW、TODAY 和 RANDBETWEEN。”

——Excel2003版。

那么,从帮助文件中的解释如何理解INDEX的易失性? 是否可以理解为:INDEX为半易失性函数(或工作簿级易失性函数)呢?即:在工作表中按F9键或编辑单元格时不会引起整个工作簿的重新计算,而重新打开工作簿则会重新计算。 如果是这样的话,还是可以替代offset并大力推广的,呵呵!

[此贴子已经被作者于2006-5-30 12:21:51编辑过]

TA的精华主题

TA的得分主题

发表于 2006-5-30 13:10 | 显示全部楼层

本人痛恨易失性函数

由于以前的年小无知,在统计时(原始数据庞大)大量使用易失性函数,(主要原因)造表格速度极慢

通过本贴学习,使我了解易失性函数的优缺点,

但易失性函数功能强大,我们不能因噎废食,应更合理的使用易失性函数

TA的精华主题

TA的得分主题

发表于 2006-5-30 13:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
以下是引用[I]aichong[/I]在2006-5-30 12:05:52的发言:[BR]是否可以理解为:INDEX为半易失性函数(或工作簿级易失性函数)呢?即:在工作表中按F9键或编辑单元格时不会引起整个工作簿的重新计算,而重新打开工作簿则会重新计算。

我觉得还不能这样来理解。 按一般使用的方法, 如: INDEX(A1:A10,MATCH(B1,C1:C10,)) 或 INDEX(A1:C10,3,4) 来使用的话,不管如何关闭、打开,都不表现出易失性。 目前只发现INDEX():INDEX() 、 A1:INDEX() 有易失性。 其他如 ROWS()等函数如何,现在还不知道。 看来微软坚持把这些列为易失函数还是有一定道理的。只不过我们不大清楚它的内在机理罢了。

TA的精华主题

TA的得分主题

发表于 2006-5-30 14:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
那我学习学习
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-19 18:51 , Processed in 0.043317 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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