动态数组:一文讲透数组扩展新函数EXPAND

清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

困难如山,我有金山。

欢迎收看本期动态数组专题,一起聊聊WPS最新16120版本更新函数:EXPAND。

这个函数很好理解,按照单词的字面意思记忆即可,“扩充、延伸”:

EXPAND:将数组扩展到指定的维度

有4个参数:=EXPAND(数组, 行数, [列数], [填充值])

例如,将一个5行*4列的数组,扩展到7行*列的数组,并填充"哦耶",只需录入:

=EXPAND(B3:E7,7,8,"哦耶")

当考生的成绩单,批量录入“合格”的话,还可以使用这种方法:

本例中,行数其实是没有变化的,我们就可以省略“行数”这个参数,即使在函数提示框中,是一个必须参数,这一点很有意思。

当数组行列数过大,不方便计算时,可以利用等差数列求项数的公式:

等差数列的项数=(末项-首项)/公差+1

由于数组单元格的公差为1,即可简化成:(具体案例如上图所示)

ROW(末行)-ROW(首行)+1

COLUMN(末列)-COLUMN(首列)+1

需要注意的是:

  1. EXPAND函数不能使用负数作为参数;

  1. 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&amp;fromshare=copylink

辽宁省
浏览 2084
收藏
16
分享
16 +1
7
+1
全部评论 7
 
亂雲飛渡
· 广东省
回复
 
尘梦
讲的非常透彻。
· 天津
1
回复
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

谢谢支持
· 辽宁省
回复
 
好家伙
希望把在线表能实现本地表的一切函数
· 云南省
回复
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

嗯嗯!
· 辽宁省
回复
 
邓华
邓华

WPS函数专家

优秀
· 广东省
1
回复
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

你们函数产品研发团队是最优秀的
· 辽宁省
回复