首页 > Excel > 运用公式将Excel行列转置

运用公式将Excel行列转置

2010年10月19日 Surda 发表评论 阅读评论

在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),但缺陷是对于公式初学者不易操作。

transpose

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))

只转置行号为偶数的单元格,奇数行用其他数据填充。

 

其他方法暂未收集,附实例下载

ShareOn:
  •  
  1. 2010年10月19日15:59 | #1

    更加果断的沙发~

  2. 2010年10月19日17:29 | #2

    呵呵 我学习了 呵呵

  3. 2010年10月19日17:41 | #3

    赶紧的板凳~
    这个公式怎么记得住的啊~

  4. 2010年10月19日20:37 | #4

    Excel的功能太强大,很多小秘诀我们都不知道

  5. 2010年10月19日20:48 | #5

    博主。。我晕了。。扶着墙爬走

  6. 2010年10月19日21:19 | #6

    @Fanr
    回赠一个沙发

    @签名
    共勉 呵呵

    @威言威语
    用多了就记住 不用刻意记得

    @微奇生活
    常常用就好了

    @飞猪
    下次买瓶度数低的招待

  7. 2010年10月19日21:51 | #7

    surda
    是不是EXCEL方面的我在这里都可以找得到资料?真没有就问你。哈哈。

  8. 2010年10月19日22:32 | #8

    传说中的“熟能生巧”

  9. 2010年10月20日08:53 | #9

    @山头人
    肯定不全面 我知道的 有问必答

    @IM路人
    熟能生巧 的确如是 呵呵

  10. 七七
    2010年10月20日10:47 | #10

    方法不错,了解了!

  11. 七七
    2010年10月20日13:12 | #11

    嗯,操作简单,支持!

  12. 2010年10月20日13:35 | #12

    @七七
    谢谢七七 很奇怪 你的站点链接经常性提示失效或重定向

  13. 2010年10月22日15:50 | #13

    这个非常有用啊。借鉴了。

  1. 本文目前尚无任何 trackbacks 和 pingbacks.