动态数组:一文讲透数组扩展新函数EXPAND
创作者俱乐部成员
困难如山,我有金山。
欢迎收看本期动态数组专题,一起聊聊WPS最新16120版本更新函数:EXPAND。
这个函数很好理解,按照单词的字面意思记忆即可,“扩充、延伸”:
EXPAND:将数组扩展到指定的维度
有4个参数:=EXPAND(数组, 行数, [列数], [填充值])
例如,将一个5行*4列的数组,扩展到7行*列的数组,并填充"哦耶",只需录入:
=EXPAND(B3:E7,7,8,"哦耶")
当考生的成绩单,批量录入“合格”的话,还可以使用这种方法:
本例中,行数其实是没有变化的,我们就可以省略“行数”这个参数,即使在函数提示框中,是一个必须参数,这一点很有意思。
当数组行列数过大,不方便计算时,可以利用等差数列求项数的公式:
等差数列的项数=(末项-首项)/公差+1
由于数组单元格的公差为1,即可简化成:(具体案例如上图所示)
ROW(末行)-ROW(首行)+1
COLUMN(末列)-COLUMN(首列)+1
需要注意的是:
EXPAND函数不能使用负数作为参数;
EXPAND函数的行、列参数也不能比原数组的行、列范围小。
均会报#VALUE!错误。
----(我是可爱的分割线)----
我们来看一个综合案例:
现在要把这个考生成绩单,生成类似“工资条”的“成绩条”:
可以考虑的做法是把原数组改写成蓝色表头区A+黄色内容区B+空白单元格数组区域C:
其中,C区域需要通过EXPAND函数进行一步扩充:
=EXPAND(J3:W12,,(COLUMN(W:W)-COLUMN(J:J)+1)/2*3,"")
其中,COLUMN(W:W)-COLUMN(J:J)+1为J列至W列一共有多少列;
再/2即为空白区的列数,再*3即为A、B、C三个区域的列宽和。
将整个A+B+C大数组整理成宽度为COLUMN(W:W)-COLUMN(J:J)+1的多维数组;
需要先TOROW变成一个大行,再WRAPROWS折叠成多维数组:
=WRAPROWS(TOROW(J3:AD12),(COLUMN(W:W)-COLUMN(J:J)+1)/2)
所有空白单元格被自动填上了0,因此需要:=IF(XXXXX=0 , "", XXXXX)
计算步骤如图所示:
下图即为最终效果。如果不需要空行,则无需C区域,即可以省略EXPAND的这一步操作。
至此,16120新版本的11个动态数组新函数,学弟的教程都更新完啦~
它们分别是:
VSTACK(数组拼接,纵向)
HSTACK(数组拼接,横向)
CHOOSEROWS(数组中提取行/行们)
CHOOSECOLS(数组中提取列/列们)
TOROW(多维数组变成行向量)
TOCOL(多维数组变成列向量)
WRAPROWS(行列向量变成多维数组,以行方向扫描)
WRAPCOLS(行列向量变成多维数组,以列方向扫描)
TAKE(数组截取)
DROP(数组删除)
EXPAND(数组扩充)
大家可以点击文末链接,在“函数攻略”系列中回翻教程合集,进行复习哦!
----(我是可爱的分割线)----
最后是今日文档的链接:
一文讲透数组扩展新函数EXPAND
https://kdocs.cn/l/ch2bQF7YSCDP
如果你觉得今天的教程对你有帮助,欢迎在下方为我点一颗小红心💖💖💖哦!
同时,你也可以将感悟或者收获在下方留言,或者在评论区留下你的困惑,我会挑选有代表性的问题,推出更多的教程跟大家分享哦!
>>>欢迎收看【清华学弟任泽岩】WPS社区个人帖子合集<<<
https://home.wps.cn/topic/14780?chan=share&fromshare=copylink
创作者俱乐部成员
创作者俱乐部成员
WPS函数专家
创作者俱乐部成员