Hi,我是偏愛函數(shù)公式,愛用 Excel 圖表管理倉庫的大叔 Mr 趙~ 在實(shí)際工作中,我們經(jīng)常需要對數(shù)據(jù)的結(jié)構(gòu)進(jìn)行轉(zhuǎn)換。比如,為了更直觀、方便查看數(shù)據(jù),需要將下圖左邊一維表轉(zhuǎn)換成如右圖的二維表:又或者為了更好的統(tǒng)計(jì)分析數(shù)據(jù),需要將左邊的二維表數(shù)據(jù)轉(zhuǎn)換成右邊的一維表格式:下面就來詳細(xì)說說,怎么用函數(shù)公式實(shí)現(xiàn)這兩種數(shù)據(jù)結(jié)構(gòu)的相互轉(zhuǎn)換。
=TRANSPOSE(UNIQUE(A2:A34)) 首先用 UNIQUE 函數(shù)提取 A 列不重復(fù)的年級變成一列,再用 TRANSPOSE 函數(shù)將得到的一列數(shù)據(jù)轉(zhuǎn)置成一行。=FILTER($B2:$B34,$A2:$A34=D1) 用 FILTER 函數(shù),以年級作為篩選條件,篩選出對應(yīng)的名單。再將公式向右拖動填充,得到如下圖右表的效果: ? 首先用 IF 函數(shù)判斷名單區(qū)域「A2:D15」是否為空;如果為空則返回錯誤值(#NAME?),否則返回第一行「A1:D1」對應(yīng)的年級。結(jié)果返回一個多行 4 列的數(shù)組,效果如下圖「F1:I14」區(qū)域所示:? 然后利用 TOCOL 函數(shù)將這組多行 4 列的數(shù)組轉(zhuǎn)化成一列。=TOCOL( IF(A2:D15 = '', x, A1:D1), 2, 1 ) TOCOL 是 Office 365 版本新增的函數(shù),非常實(shí)用和強(qiáng)大,它可以將多數(shù)組轉(zhuǎn)化為一列數(shù)據(jù)。=TOCOL(array, [ignore], [scan_by_column])第一參數(shù)是需要轉(zhuǎn)化成列的數(shù)組,公式中 TOCOL 函數(shù)的第一個參數(shù) IF(A2:D15 = '', x, A1:D1)是需要轉(zhuǎn)化的數(shù)組;第二參數(shù)可以選擇是否忽略空白或錯誤,公式中的第二個參數(shù)是 2,表示忽略區(qū)域中的錯誤值;第三參數(shù)表示掃描方式,可以設(shè)定是按行方向掃描數(shù)組還是按列方向掃描數(shù)組,默認(rèn)情況下按行掃描,如果要按列掃描,則值為 TRUE 或 1。 ? 最后再用 TOCOL 函數(shù)將姓名區(qū)域「A2:D15」,也轉(zhuǎn)化成一列。公式中的第二參數(shù)是 1,表示忽略區(qū)域「A2:D15」中的空白,轉(zhuǎn)化成一列。效果如下圖 G 列所示: ? 一維表轉(zhuǎn)化成二維表:首先用 UNIQUE 函數(shù)提取一列的不重復(fù)值,作為標(biāo)題行;然后用 FILTER 函數(shù),以標(biāo)題作為篩選條件,提取對應(yīng)的內(nèi)容。? 二維表格轉(zhuǎn)化成一維表:當(dāng) TOCOL 函數(shù)第二參數(shù)為 2 時,忽略錯誤值,將標(biāo)題行轉(zhuǎn)化成一列,再利用 TOCOL 函數(shù)第二參數(shù)為 1 時,忽略空白,將對應(yīng)的區(qū)域轉(zhuǎn)化成一列。
|