运用公式将Excel行列转置
在Excel办公中时常需要将行、列进行互换,但Excel报表中动则几十、上百甚至成千条数据,如何将行数据变成列数据?如果我们使用普通的复制粘帖,岂不把人折腾够呛?
好在Excel自身为我们提供了“转置”命令。操作也很简单:选中单元格区域→复制→在目标区域→右键→选择性粘贴→转置,即可实现行列互换。

但转置命令局限性较大,只能实现静态转换。所以一般推荐使用公式实现行列转置,当源单元格内容发生变化,在转置后的目标单元格也跟随发生变化。
下面我们通过实实例来看几种公式行列转置方法。
| 上海 | 20 | =TRANSPOSE(A1:A6) | 上海 | 北京 | 天津 | 重庆 | 云南 | 江西 | u |
| 北京 | 30 | =TRANSPOSE(B1:B6)*2+10 | 50 | 70 | 90 | 110 | 90 | 130 | v |
| 天津 | 40 | =INDEX($A$1:$A$6,COLUMN(A1)) | 上海 | 北京 | 天津 | 重庆 | 云南 | 江西 | w |
| 重庆 | 50 | =INDIRECT(“A”&COLUMN(A1)) | 上海 | 北京 | 天津 | 重庆 | 云南 | 江西 | x |
| 云南 | 40 | =OFFSET($A$1,COLUMN(A1)-1,0) | 上海 | 北京 | 天津 | 重庆 | 云南 | 江西 | y |
| 江西 | 60 | 转置命令 | 上海 | 北京 | 天津 | 重庆 | 云南 | 江西 | z |
如上图为截取的Excel A1:J6区域,有底色区域A1:B6为源数据区域。
u是直接调用Excel自带单元格区域转置函数TRANSPOSE(),相较于转置命令TRANSPOSE优势是转置区域可以参与计算(如v),但缺陷是对于公式初学者不易操作。

1、在D2单元格输入公式=TRANSPOSE(B1:B6)*2+10
2、选中D2:I2区域,按F2,接着按CTRL+SHIFT+ENTER组合键完成公式输入
wxy分别运用INDEX,INDIRECT,OFFSET函数实现行列转置(公式见上),效果同TRANSPOSE,但操作更灵活。可按条件进行行列转换。如:
=INDIRECT(“A”&IF(MOD(COLUMN(A1),2)=0,COLUMN(A1),7))
只转置行号为偶数的单元格,奇数行用其他数据填充。
其他方法暂未收集,附实例下载。
更加果断的沙发~
呵呵 我学习了 呵呵
赶紧的板凳~
这个公式怎么记得住的啊~
Excel的功能太强大,很多小秘诀我们都不知道
博主。。我晕了。。扶着墙爬走
@Fanr
回赠一个沙发
@签名
共勉 呵呵
@威言威语
用多了就记住 不用刻意记得
@微奇生活
常常用就好了
@飞猪
下次买瓶度数低的招待
surda
是不是EXCEL方面的我在这里都可以找得到资料?真没有就问你。哈哈。
传说中的“熟能生巧”
@山头人
肯定不全面 我知道的 有问必答
@IM路人
熟能生巧 的确如是 呵呵
方法不错,了解了!
嗯,操作简单,支持!
@七七
谢谢七七 很奇怪 你的站点链接经常性提示失效或重定向
这个非常有用啊。借鉴了。