下面通過excel365新函數來分享表格轉置的具體案例。如下圖所示:
需要把左邊的表格,轉置為右邊的表格,下面分享具體操作:
目的:表格轉置
方法一:
參考公式如下:
=VSTACK({"姓名","月份","資料"},HSTACK(TOCOL(IF(B2:E6&"">0,A2:A6)),TOCOL(IF(B2:E6&"">0,B1:E1)),TOCOL(B2:E6)))
公式執行的結果如下圖所示:
IF(B2:E6&"">0,A2:A6)這個是判斷B2:E6&""為空單元格,一樣傳回A2:A6的結果,具體如下圖所示:
這個的意思就是A2單元格對應的是B2:E2區域單元格,且傳回與B2:E2區域相同的區域結果都為A2。
B2:E6沒有資料,一樣傳回A2:A6的結果。如下圖所示:
TOCOL(IF(B2:E6&"">0,A2:A6)),這個是通過TOCOL函數把IF(B2:E6&"">0,A2:A6)傳回的資料,轉為一列。結果如下圖所示:
HSTACK(TOCOL(IF(B2:E6&"">0,A2:A6)),TOCOL(IF(B2:E6&"">0,B1:E1)),TOCOL(B2:E6)),這個是通過HSTACK函數把TOCOL函數轉為列的資料,橫向堆疊為一個三列資料的資料表,結果如下圖所示:
VSTACK({"姓名","月份","資料"},HSTACK(TOCOL(IF(B2:E6&"">0,A2:A6)),TOCOL(IF(B2:E6&"">0,B1:E1)),TOCOL(B2:E6))),這個是通過VSTACK函數把表頭添加在最上邊,就得到了如下的結果。如下圖所示:
方法二:
參考公式如下:
=VSTACK({"姓名","月份","資料"},TEXTSPLIT(TEXTJOIN(",",,A2:A6&"-"&B1:E1&"-"&B2:E6),"-",","))
公式執行的結果如下圖所示:
A2:A6&"-"&B1:E1&"-"&B2:E6,這個是把姓名、月份和資料通過"-"橫杠隔開連接配接起來得到新的字元串,具體結果如下圖所示:
TEXTJOIN(",",,A2:A6&"-"&B1:E1&"-"&B2:E6),這個是通過TEXTJOIN函數把A2:A6&"-"&B1:E1&"-"&B2:E6字元串通過","逗号隔開,連成一串字元串,結果如下圖所示:
TEXTSPLIT(TEXTJOIN(",",,A2:A6&"-"&B1:E1&"-"&B2:E6),"-",","),這個是通過TEXTSPLIT函數把TEXTJOIN函數連接配接起來的字元串進行拆分,以"-"橫杠為行分隔符,以","逗号為列分隔符,得到的結果如下圖所示:
VSTACK({"姓名","月份","資料"},TEXTSPLIT(TEXTJOIN(",",,A2:A6&"-"&B1:E1&"-"&B2:E6),"-",",")),這個是通過VSTACK函數把表頭添加,結果如下圖所示:
excel365新函數的應用,這僅是一個小例,它們的強大處理資料的功能,可以解決更多和更複雜的問題,這個僅僅是一個例子供大家學習參考。