問題求助SOS:如何將一列數(shù)據每5個為一組重新組合,最后一組若不足5個的以實際為準? 這個例子相對來說比較容易解決,主要就是動態(tài)位置取值的思維,或者說是布局重構的思維。簡化數(shù)據源,A列是一列名稱,我們想要依次向下每5個為一組,提取數(shù)據,放置到C列中,由于A列數(shù)據的總個數(shù)可能不是5的倍數(shù),所以C列結果數(shù)據的最后一個單元格可能不足5個數(shù)據,以實際剩余數(shù)量為準即可。小編的第一直覺是想到了兩種方法:第一種是純公式一氣呵成,第二種是加輔助列更容易理解,肯定還有第三種、第四種方法,希望大家可以開啟腦洞,找到更多的思路。方法一 獲取從A1單元格開始到An單元格結束的行號:1~n(等差為1的順序序號)。=OFFSET(A$2,(ROW(A1)-1)*5,,5)利用OFFSET函數(shù),我們分別從固定的A2單元格(鎖行不鎖列)為基準點,分別向下偏移0行、5行、10行、15行.....n行(依次類推都是5的倍數(shù)行),然后在分別得到的偏移位置處向下取5個固定單元格高度的單元格區(qū)域。這樣我們就可以得到一個垂直方向的數(shù)組溢出結果,就是第一組的5個數(shù)據。但是此時并不能直接下拉填充公式,因為縱向的數(shù)組下拉填充會形成連環(huán)遮擋,返回常見的#SPILL!。如果我們在第二步中想要迫切觀察各個的每5個數(shù)據分組的結果,可以加一個TRANSPOSE函數(shù):=TRANSPOSE(OFFSET(A$2,(ROW(A1)-1)*5,,5))這一步不是必須的,因為后期我們要進行數(shù)據合并的操作,不用此步也可以直接下拉。使用TEXTJOIN數(shù)據合并函數(shù):=TEXTJOIN(",",,TRANSPOSE(OFFSET(A$2,(ROW(A1)-1)*5,,5)))=TEXTJOIN(",",,OFFSET(A$2,(ROW(A1)-1)*5,,5))將獲得的每組5個數(shù)據合并后的數(shù)組溢出結果,用間隔符逗號合并到一個單元格顯示。將A2:A12區(qū)域的一列數(shù)據,轉換成5列顯示,且轉換后的結果數(shù)據要按行方向優(yōu)先的方式進行排列。這樣會得到一個5列多行的數(shù)組溢出區(qū)域,這個區(qū)域中每行的數(shù)據即為每5個為一組的數(shù)據。將上一步的數(shù)組溢出區(qū)域作為輔助列,將區(qū)域內每行的數(shù)據用TEXTJOIN合并到一個單元格顯示,并用分隔符逗號間隔。學習Excel,如果你沒有天賦,那就一直重復,當你快到本能反應的時候,你的重復就是別人眼中的天賦,沖破捆綁,展翅翱翔。回顧關鍵內容,善用圖片表達,學會建立聯(lián)系,拓展深度廣度,濃縮關鍵概念,應用到行動中,善于歸納總結,嘗試進行分享。
|