本文总共1292个字,阅读需5分钟,全文加载时间:2.297s,本站办公入门专栏收录该内容! 字体大小:

文章导读:什么,函数的易失性?也许很多朋友都没有听过这个概念吧。但是应该很多人都有过如下的体会:有时候我们打开一个工作簿不做任何更改就关闭了,Excel还是会提示"是否保存对文档的更改?"。或者是另外一种情况,有时……各位看官请向下阅读:

什么,函数的易失性?也许很多朋友都没有听过这个概念吧。但是应该很多人都有过如下的体会:有时候我们打开一个工作簿不做任何更改就关闭了,Excel还是会提示"是否保存对文档的更改?"。或者是另外一种情况,有时当我们的表格数据稍微大点的时候,经常会出现Excel间断性卡顿的问题。恭喜你,如果你曾经有过以上的经历,那么你就是在不知不觉中使用了具有Volatile特性的函数,也就是"易失性函数"。

那么,常见的易失性函数有哪些呢?获取随机数的RAND()函数和RANDBETWEEN函数、获取当前时间的NOW()函数、获取当前日期的TODAY()函数、返回动态引用的OFFSET函数和INDIRECT函数。大家应该也比较容易理解了,所谓的易失性就是该函数的返回值在工作表数据没有任何变化的前提下也是会发生变化的,这就会导致这类函数不断的进行自动重算。如果我们在工作表中大量的使用了此类易失性函数,就会因为该类函数频繁的计算而占用大量的系统资源,从而影响运行的速度。

(此处已添加圈子卡片,请到今日头条客户端查看)

除了这一些显性的易失性函数外,其他的一些函数在引用区域具有不确定性的时候,每当有单元格被重新编辑,也会引发工作表重新计算,也会变成易失性函数哟。比如请看下面的一个例子。

一、我们要计算所有钢笔的总价格,可以使用sumif函数,公式如下:

=SUMIF(B2:B18,"钢笔",D2)

该函数的第三个参数sum_range应该是D2:D18(与第一个参数的区域大小相同),此处简写为D2,让该函数自动扩充。

使用建议:使用这种写法,虽然能够使公式得到一定的简化,但是会在每次打开工作簿的时候都需要重新定位单元格区域,造成易失性,建议不这样使用。

二、或者我们计算D3:D8的总和,会使用到一种求和方法:

第一种:=SUM(D3:D8)

第一种:=SUM(INDEX(D:D,3):INDEX(D:D,8))

第二种:=SUM(INDEX(D2:D18,2):INDEX(D2:D18,7))

以上三种方法都实现了计算D3:D8的和,但是后两种方式使用INDEX这种特殊结构对单元格区域进行动态引用,同样在每次打开工作簿的时候都需要重新定位单元格区域,造成易失性,建议尽量避免使用。

小贴士:易失性函数在以下的场景下不会引发自动重算。

(1) 当将计算选项设置为【手工重新计算】时。

(2) 当手工设置列宽、行高时,但隐藏行或者设置行高值为0除外。

(3) 当设置单元格格式或其他的更改显示属性的设置时。

(4) 激活单元格或编辑单元格内容但是按【ESC】键取消时。

根据我们以上的描述,我们之后在Excel的公式函数的设计中,要多多注意函数的易失性这个问题,尽量避免使用直接的易失性函数。同时,在对一些函数的参数设置时,在可能的情况下尽量不要大量的使用动态的单元格区域引用,避免出现函数的易失性,造成大量的计算占用计算机资源,造成电脑卡顿现象。

如果需要获取本教程的演示文件,请点击我名字后面的关注,然后私信【函数易失性】获取。

想要从零系统学习Excel,查看本站上方“视频教程”获取最新秋叶Office三合一办公应用课程!

以上内容由优质教程资源合作伙伴 “鲸鱼办公” 整理编辑,如果对您有帮助欢迎转发分享!

你可能对这些文章感兴趣:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注