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