天天看點

通過函數實作表格轉置

作者:ExcelWps應用執行個體分享

下面通過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新函數的應用,這僅是一個小例,它們的強大處理資料的功能,可以解決更多和更複雜的問題,這個僅僅是一個例子供大家學習參考。