之前寫出數(shù)組公式已然不易,想要擴(kuò)展更是難上加難,但是最近更新解決了這個(gè)問題,具體我們看一個(gè)案例來了解一下!
首先我們還是來看一個(gè)基礎(chǔ)問題,如何讓一個(gè)內(nèi)容擴(kuò)展成指定行數(shù)或者列數(shù)的數(shù)組?
比如我們有一個(gè)內(nèi)容為“A',如何變成3行的內(nèi)存數(shù)組呢?方法有很多!
首先是傳統(tǒng)的方法,可以使用INDEX,構(gòu)建第二參數(shù)數(shù)組,比如下面這樣!
當(dāng)然我們也可以換一個(gè)思路,把內(nèi)容重復(fù)后,再拆分成數(shù)組!
=TEXTSPLIT(REPT('A'&'|',3),,'|')
這個(gè)是否你會(huì)發(fā)現(xiàn)多出一個(gè)空行,也就是最后一個(gè)拼接的符號(hào),這個(gè)要如何處理呢?要是我們可以截取或者丟棄數(shù)組部分內(nèi)容就好了,過去是不行的,但是現(xiàn)在可以了!
來看看TAKE函數(shù)和DROP函數(shù)=TAKE(TEXTSPLIT(REPT('A'&'|',3),,'|'),3)
TAKE就是字面意思,我們可以從數(shù)組頭部(正數(shù)),尾部(負(fù)數(shù)),截取數(shù)組部分行數(shù)或者列數(shù)的大小的數(shù)組!
具體語法:TAKE(數(shù)組,截取行數(shù),[截取列數(shù)])就本案例來說,截取不如直接丟棄最后一個(gè),這個(gè)的丟棄對(duì)應(yīng)的就是DROP函數(shù),也是字面意思了!
=DROP(TEXTSPLIT(REPT('A'&'|',3),,'|'),-1)
公式的含義就是丟棄最后一行,跟TAKE相反的意思!從后處理使用負(fù)數(shù)表述!
DROP函數(shù)的語法截取如下,和TAKE完全一致,功能正好相反!除了上面,我們還有沒有其他方法可以擴(kuò)展呢?有沒有直接的擴(kuò)展方式?
其實(shí)還有一個(gè),那就是EXPAND函數(shù)
如其名,就是擴(kuò)展數(shù)組用的!根據(jù)下面的截圖,翻譯一下就是具體語法:EXPAND(數(shù)組,展開行數(shù),[展開列數(shù)],[不足部分填充])具體如何使用呢?目前官方給的例子,意義不大,我們還是利用上面的案例看一下!
意思就是把A擴(kuò)展成3行1列,不足部分使用“A”填充!
當(dāng)然,我們可不可以指定第二參數(shù)就可以擴(kuò)展,而不用指定第四參數(shù)呢?自然是可以的,只是要使用數(shù)組的方式!
當(dāng)然你也可以使用老的ROW也是一樣的!
講了這么多,我們來使用這些新函數(shù),做一個(gè)實(shí)際案例吧!
S02 | 實(shí)戰(zhàn)應(yīng)用=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函數(shù)拆分即可,根據(jù)拆分后的數(shù)組行數(shù),把對(duì)應(yīng)的組別也擴(kuò)展到對(duì)應(yīng)的行數(shù)大小,然后使用HSTACK水平方向合并到一起然后把每一行處理好的數(shù)據(jù),再使用VSTACK合并到依次追加到之前合并好的數(shù)組上即可!這里涉及到每行處理,還需要在上次處理的基礎(chǔ)上追加結(jié)果,所以我們首先考慮到的函數(shù)就是REDUCE
以上我們算是對(duì)最新一批函數(shù)的綜合應(yīng)用,具體涉及7個(gè)新函數(shù)如下:
REDUCE、LAMBDA、LET、TEXTSPLIT、SENQUENCE、VSTACK、HSTACK、EXPAND近一年多更新的全部新函數(shù)如下:本次更新的大部分我們已經(jīng)講完!目前來看要三點(diǎn):①365正版 ②Beta通道 ③ 版本2204+
應(yīng)該是分配推送,如果你都滿足,還是沒有,可能再等兩天基本就有了!
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。