本文目标:
1)进一步加深数组公式的使用认知,更加灵活合理的将数组公式运用于实际工作过程之中;
2)了解Excel数据处理的机制
我们在初步学习Excel数组公式时,会收到很多警告,说数组公式更耗运算时间。对于这样的警告,其实只说对了一半,微软在官方文件之中,提出这样警告是基于一定条件的,如果脱离了限定条件,将数组公式和运算效率低之间划等号,那就太冤枉了数组公式,国内很多教材,脱离了这样的条件,本人其实也被误导了很久,万不得已不使用数组公式。
在之前的文章中提到,数组公式,如果不执行ctrl+shift+enter组合键通知excel公式为数组公式时,excel将会提取公式所在单元格,同行或者同列对应单元格数据参加计算,而不是一组数据参加计算。这个规则可参考微软官方文档implicit intersection(隐含交叉规则,该规则将在Excel2019版本之中去除,因为引入了动态数组),当无组合键的情况下,提高效率,会有该计算规则,在实际工作过程之中作用不大,如果有组合键,将会执行数组公式,前者是一个元素参加计算,数组公式是N个元素参加计算,当然速度就慢了。
implicit intersection计算规则,猜想在实际工作过程之中,确实发挥不上任何作用,在excel新版本之中,取消了该计算规则,引入了更加强大的动态数组计算规则。
回到正题,数组公式在实际工作过程之中,如果运用合理,其实是能够大大提升计算效率的,以我实际工作过程之中案例为例,数据集为20万行,15个字段的数据,使用Vlookup函数进行数据的匹配,将被匹配的数据有1000条,需要将这1000条数据15个字段的数据信息都被匹配出来,使用了vlookup函数。
=VLOOKUP(P1,$A$1:$O$200000,1,0)-----------------------------非数组公式提取
{=VLOOKUP(P1,$A$1:$O$200000,{1,2,3….15},0)}------------------数组公式提取
通过对比,使用数组公式耗时5秒钟,完成数据的匹配工作;常规公式完成这1000条数据的匹配工作耗时约42秒。那为何数组公式耗时会更少呢!
使用数组公式只使用了1000个数组公式,但非数组公式却有1.5万个公式,虽然单个数组公式执行更耗时,但从完成执行任务角度来说需要的公式量更少,从完成工作任务的角度来说,数组公式的计算量反而更少了。
从案例来说,vlookup函数,完成一条数据多个字段数据的匹配提取工作,只需要一次就能够完成了,但非数组公式却需要多次匹配才能够完成。因此对于数组公式来说,只要合理运用反而会提升计算效率的。那从执行效率上来说,使用数组公式该注意哪些问题呢:
1)使用数组公式时,如果非必须需求,尽量保持数据的区域越小越好,尽量不使用整列引用,或者整行引用;
2)平时多加分析各个函数的特点,例如vlookup函数第一个参数也是支持数组公式,但该参数使用数组公式,从计算量和实际运用场景来说,基本没啥好处,如果无特定的使用场景需求,从执行效率上讲不推荐使用;
以下为我收集关于Excel数组公式、intersection计算规则的文章,大家可以收藏下。