欢迎光临散文网 会员登陆 & 注册

一维表和二维表互转,这个方法只有1%的人知道!

2023-08-29 07:00 作者:秋叶Excel  | 我要投稿

Hi,我是偏爱函数公式,爱用 Excel 图表管理仓库的大叔 Mr 赵~

在实际工作中,我们经常需要对数据的结构进行转换


比如,为了更直观、方便查看数据,需要将下图左边一维表转换成如右图的二维表:



又或者为了更好的统计分析数据,需要将左边的二维表数据转换成右边的一维表格式:



下面就来详细说说,怎么用函数公式实现这两种数据结构的相互转换。

一维表转化成二维表

❶ 提取年级变成标题行


在 D1 输入公式:

=TRANSPOSE(UNIQUE(A2:A34))


首先用 UNIQUE 函数提取 A 列不重复的年级变成一列,再用 TRANSPOSE 函数将得到的一列数据转置成一行。


效果如下图所示:



❷ 提取对应的名单


在 D2 单元格输入公式:

=FILTER($B2:$B34,$A2:$A34=D1)


用 FILTER 函数,以年级作为筛选条件,筛选出对应的名单。再将公式向右拖动填充,得到如下图右表的效果:



二维表转化成一维表

❶ 首先用 IF 函数判断名单区域「A2:D15」是否为空;如果为空则返回错误值(#NAME?),否则返回第一行「A1:D1」对应的年级。


在 F1 单元格输入公式:

=IF(A2:D15="",x,A1:D1)


结果返回一个多行 4 列的数组,效果如下图「F1:I14」区域所示:



❷ 然后利用 TOCOL 函数将这组多行 4 列的数组转化成一列。


1.=TOCOL(  

2.     IF(A2:D15 = "", x, A1:D1),

3.    2,   

4.     1

5. )


效果如下图 F 列所示:



TOCOL 是 Office 365 版本新增的函数,非常实用和强大,它可以将多数组转化为一列数据。


该函数的语法为:

=TOCOL(array, [ignore], [scan_by_column])


第一参数是需要转化成列的数组,公式中 TOCOL 函数的第一个参数 IF(A2:D15 = "", x, A1:D1)是需要转化的数组;


第二参数可以选择是否忽略空白或错误,公式中的第二个参数是 2,表示忽略区域中的错误值;


第三参数表示扫描方式,可以设定是按行方向扫描数组还是按列方向扫描数组,默认情况下按行扫描,如果要按列扫描,则值为 TRUE 或 1。


❸ 最后再用 TOCOL 函数将姓名区域「A2:D15」,也转化成一列。


在 G1 单元格输入公式:

=TOCOL(A2:D15,1,1)


公式中的第二参数是 1,表示忽略区域「A2:D15」中的空白,转化成一列。效果如下图 G 列所示:



最后小结

❶ 一维表转化成二维表:首先用 UNIQUE 函数提取一列的不重复值,作为标题行;然后用 FILTER 函数,以标题作为筛选条件,提取对应的内容。


❷ 二维表格转化成一维表:当 TOCOL 函数第二参数为 2 时,忽略错误值,将标题行转化成一列,再利用 TOCOL 函数第二参数为 1 时,忽略空白,将对应的区域转化成一列。


好了,今天就说到这里结束啦~


如果本篇文章对你有帮助或有所启发,欢迎「点赞」、「评论」和「转发」哦,你们的支持是我分享的动力!


掌握 Excel 里的函数,可以帮助你更快搞定工作,早下班~


如果你想学,欢迎报名我们的《3 天 Excel 集训营》课程,这里有老师带学,助教答疑,社群交流……


点击下方图片

扫码即可报名

👇👇👇


↑↑↑

现在报名免费领取

307 个函数清单

35 个常用函数说明

*广告

一维表和二维表互转,这个方法只有1%的人知道!的评论 (共 条)

分享到微博请遵守国家法律