乐于分享
好东西不私藏

同事还在用Excel“复制+转置”,我用一秒搞定,准点下班!

同事还在用Excel“复制+转置”,我用一秒搞定,准点下班!
上回给大家分享了TOROW、TOCOL、WRAPCOLS、WRAPROWS这四个用于排版的动态数组函数。
数据太乱怎么办?4个函数帮你一键搞定
但是在实际的工作过程中,还是有同学不太会用,今天就拿一个很生动的例子来讲解一下(模板下载见文章结尾):
AB列是源数据,一共有451行,一共有15个店铺名称,每个店铺有30行数据,现在要把这纵向排布的区域转换成横向矩阵:D1:R31。
一、步骤演示:
1、处理店铺区域,先对A列去重,然后把列转换为行。去重的函数是 UNIQUE,列转行 用 TOROW函数:
去重:=UNIQUE(A2:A451)列转行:=TOROW(区域)
把去重和列转行写到同一个公式:
=TOROW(UNIQUE(A2:A451))
瞬间,A2:A451 单元格区域就变成了 D1:R1 区域
2、处理B列数据,已知每个店铺有30行数据,所以结果就是把450行数据转换为 30行*15列的数据;上一章我们讲过了,一列转换为多行的函数要用 WRAPCOLS:
=WRAPCOLS(数据区域,行数)
所以在D2单元格这么写:
=WRAPCOLS(B2:B451,30)
是不是很简单,如果用常规方法手搓的话起码也要10分钟往上,使用 TOROW+WRAPCOLS用不了10秒!
二、常规方法
由于TOCOL+WARPROWS两个函数需要EXCEL365/2021+版本(或者使用WPS)才能用,所以低版本可以凭借 INDEX函数 使用下面的常规方法:
1、先把A列单元格复制出来,菜单栏——数据——删除重复项,然后复制——转置,把列转换行;
2、假设转置后的店铺明细放在D1:R1单元格,那么在D2单元格输入如下公式:
=IFERROR(  INDEX($B:$B,    SMALL(IF($A$2:$A$451=D$1,ROW($A$2:$A$451)),ROW(A1)))    ,"")
备注:以上是数组函数,需要按CTRL+SHIFT+ENTER
详细演示动画如下:

三、为什么你一定要学会这个转换?

  • “多列矩阵”,适合打印、汇报、对比分析

  • “单列长表”,原始数据格式,难读难用

  • 手动复制粘贴耗时易错,函数自动化才是王道!

  • TOROW:将区域转为单行,增加参数还能忽略空值、错误值

  • WRAPCOLS:将单行数据按列数自动换行,形成矩阵

  • 两者结合 = “长表→矩阵”的终极解决方案!

彩蛋:如何把D1:R31这个横版矩阵转换回 A1:B451?

方法一:使用ALT+D+P快捷键,用透视表一键转换

Alt+D+P:Excel 数据透视表的终极“快捷键之王”,职场人必学的效率神技!

方法二:使用如下公式

A列:=INDEX($D$1:$R$1, INT((ROW(A1)-1)/30) + 1)B列:=TOCOL(D2:R31,,1)

练习模板:

https://pan.baidu.com/s/1foAT_akv4fvSNOuktqdQOw?pwd=9527

#TOROW#WRAPCOLS#数据转换#办公技巧#行列转换

相关学习资料