之前写出数组公式已然不易,想要扩展更是难上加难,但是最近更新解决了这个问题,具体我们看一个案例来了解一下!
首先我们还是来看一个基础问题,如何让一个内容扩展成指定行数或者列数的数组?
比如我们有一个内容为“A',如何变成3行的内存数组呢?方法有很多!
首先是传统的方法,可以使用INDEX,构建第二参数数组,比如下面这样!
当然我们也可以换一个思路,把内容重复后,再拆分成数组!
=TEXTSPLIT(REPT('A'&'|',3),,'|')
这个是否你会发现多出一个空行,也就是最后一个拼接的符号,这个要如何处理呢?要是我们可以截取或者丢弃数组部分内容就好了,过去是不行的,但是现在可以了!
=TAKE(TEXTSPLIT(REPT('A'&'|',3),,'|'),3)
TAKE就是字面意思,我们可以从数组头部(正数),尾部(负数),截取数组部分行数或者列数的大小的数组!
具体语法:TAKE(数组,截取行数,[截取列数])就本案例来说,截取不如直接丢弃最后一个,这个的丢弃对应的就是DROP函数,也是字面意思了!
=DROP(TEXTSPLIT(REPT('A'&'|',3),,'|'),-1)
公式的含义就是丢弃最后一行,跟TAKE相反的意思!从后处理使用负数表述!
DROP函数的语法截取如下,和TAKE完全一致,功能正好相反!除了上面,我们还有没有其他方法可以扩展呢?有没有直接的扩展方式?
如其名,就是扩展数组用的!根据下面的截图,翻译一下就是具体语法:EXPAND(数组,展开行数,[展开列数],[不足部分填充])具体如何使用呢?目前官方给的例子,意义不大,我们还是利用上面的案例看一下!
意思就是把A扩展成3行1列,不足部分使用“A”填充!
当然,我们可不可以指定第二参数就可以扩展,而不用指定第四参数呢?自然是可以的,只是要使用数组的方式!
讲了这么多,我们来使用这些新函数,做一个实际案例吧!
=REDUCE(A1:B1,$B$2:$B$4, LAMBDA(x,y,LET(cp,TEXTSPLIT(y,,'、'),r,SEQUENCE(COUNTA(cp)),VSTACK(x,HSTACK(EXPAND(INDEX($A$1:$A$4,ROW(y)),r),cp))) ))
首先,考虑拆分问题,使用最新的TEXTSPLIT函数拆分即可,根据拆分后的数组行数,把对应的组别也扩展到对应的行数大小,然后使用HSTACK水平方向合并到一起然后把每一行处理好的数据,再使用VSTACK合并到依次追加到之前合并好的数组上即可!这里涉及到每行处理,还需要在上次处理的基础上追加结果,所以我们首先考虑到的函数就是REDUCE
以上我们算是对最新一批函数的综合应用,具体涉及7个新函数如下:
REDUCE、LAMBDA、LET、TEXTSPLIT、SENQUENCE、VSTACK、HSTACK、EXPAND近一年多更新的全部新函数如下:本次更新的大部分我们已经讲完!目前来看要三点:①365正版 ②Beta通道 ③ 版本2204+
应该是分配推送,如果你都满足,还是没有,可能再等两天基本就有了!
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。