动态数组很强⼤,Excel 的“新”功能
今天介绍下Excel 的新功能,动态数组。
当然,这个功能并不算新,不过对于⼤部分使⽤Excel 的朋友,这应该是个新功能。尤其是对于关注本的粉丝来说,这个功能我们还没有介绍过。也没有在任何案例中⽤过。
这个功能只能在Excel 2019或者Office 365中使⽤。这也是我⼀直没有给⼤家介绍的最主要的原因。
但是,以动态数组为代表的⼀⼤批功能越来越多的出现在了Office 365和Excel 2019中。跟Power Query 和Power Pivot 不⼀样,这些功能都是对每个⼈的⽇常⼯作⾮常有帮助的,可以说是提⾼我们⼯作效率的利器,因此,还是很有必要了解和掌握⼀下的。
01
认识动态数组
在Excel 中,数组都是被作为“⾼级”功能看待的!⼀般,说到数组公式,很多⼈⼼⾥就先有了三分敬畏。
确实,⼀般⽤到数组公式的地⽅,那个公式往往⽐较复杂。⽽且,输⼊的时候还必须使⽤CTRL+SHIFT+回车三个键⼀起输⼊。
下图就是⼀个在以前版本的Excel 中,使⽤数组公式的例⼦:
这⾥,我们使⽤了公式:
这就是⼀个数组公式。
普通的IF 公式是这样的,
意思是判断B2是否⼤于4,如果是,则返回B2,否则就返回0。
⽽公式:
的意思则是,判断B2:B7中的每个单元格的值是否⼤于4,如果是,则返回对应单元格的值,否则就返回0。
这个公式会返回⼀个1列6⾏的数据结果,所以是个数组公式,必须通过CTRL+SHIFT+ENTER 输⼊:
返回的结果被放置在D2:D7区域
这个公式的返回结果区域(D2:D7)是⼀个整体,如果你想操作修改其中的⼀个单元格(⽐如删除第⼀个单元格的公式),就会报错:
=IF(B2:B7>4,B2:B7,0)
excel数组函数的实例=IF(B2>4,B2,0)
=IF(B2:B7>4,B2:B7,0)
这种传统的数组公式,有两个不太⽅便的地⽅:
1. 公式输⼊必须实现确定范围,⽐如,我必须⾸先圈定跟返回数组⼀样⼤⼩(7⾏1列)的区域
2. 删除公式时必须选中整个结果区域⼀起操作
3. 输⼊公式必须使⽤CTRL+SHIFT+ENTER3键
⽽在新版本的Excel 中,动态数组是这样的:
只要在D2单元格中输⼊公式:
按回车(只要按回车就可以,不需要三键),公式输⼊成功:
注意看公式编辑栏中,公式并没有{}。
这就是动态数组!!!
不⽤实现选定结果区域,不⽤按三键输⼊。
02
动态数组详解
从上⾯的例⼦⼤家已经看到了,只要在⼀个单元格中输⼊公式,Excel 就会⾃动将结果扩展到⼀个合适⼤⼩的区域,这个区域跟公式返回的数组⾏列数⼀致。
这种⾏为,在Excel 中称为“溢出”,英⽂是SPILLING 。
这是“动态”的⼀个基本含义,Excel ⾃⾏判断返回值需要占据多⼤的区域,然后就将这个区域⽤公式结果填充。
使⽤动态数组公式有⼀个推荐的使⽤场景,即将源数据(公式引⽤的参数)放在超级表中,这样这个区域就是⼀个可以变化的区域。例如,我们可以将B2:B7转换为超级表,然后在数组公式中引⽤超级表:
=IF(B2:B7>4,B2:B7,0)
边框提⽰我们这个区域是⼀个整体。边框内的任意单元格都不可更改(例如,你不能删除第已,边框内只有左上⾓的单元格是可以被修改的,这个修改分为两种情况:
03
⼏个注意的问题
01如果“溢出”的区域被占了怎么办
⽐如,如果我们在D2中输⼊数组公式,这个公式预计会溢出到D2:D13,但是,现在D13中已经有内容了:
此时,按回车输⼊公式后,在D2中会返回错误值:
02在超级表中不可以使⽤动态数组公式
尽管我们建议把动态数组公式的引⽤参数放在超级表中,但是在超级表中是不能使⽤数组公式的:
我们在超级表的第⼆列中,使⽤数组公式,期望溢出到整个列中,失败了:
其实,这种情况,根本不⽤数组公式:
03新旧版本切换时动态数组会带来问题吗
答案是不会的。在动态数组公式这个问题上,Excel 会智能的实现⾃动切换。具体的来说:
#SPILL!
答案是不会的。在动态数组公式这个问题上,Excel会智能的实现⾃动切换。具体的来说:
如果在新版本创建了动态数组公式,保存后,再⽤旧版本打开时,动态数组公式会变成传统的数组公式(编辑栏中有⼤括号)。⽽这个⽂件在此⽤新版本打开后,这些公式⼜变成了动态数组公式了。
如果在旧版本中创建了传统数组公式(⽤三键输⼊),⽤新版本打开时,仍然是传统的数组公式。
04
其他
在新版本的Excel中,微软还推出了⼀系列的返回动态数组的函数:
SORT
SORTBY
UNIQUE
FILTER
RANDARRAY
SEQUENCE
这些函数极⼤的丰富了我们进⾏数据处理的武器库。在后续⽂章中,我会为⼤家详细介绍
加⼊E学会,学习更多Excel函数,数据处理⽅法和案例。⼀次加⼊,永久有效,学习多达20门Excei精品课程

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。