天天看点

通过函数实现表格转置

作者: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新函数的应用,这仅是一个小例,它们的强大处理数据的功能,可以解决更多和更复杂的问题,这个仅仅是一个例子供大家学习参考。