设为首页收藏本站

嘻皮客娱乐学习网

 找回密码
 中文注册
搜索
打印 上一主题 下一主题
开启左侧

[Excel技巧] 公式法将多行多列数据转换到单列

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-10 10:01:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
在Excel中将多行多列数据转换到单列的方法有很多,本文介绍用公式进行转换的方法。假如Sheet1表的A2:E7区域有6行5列的数据需要转换到Sheet2表的A列,如图所示。
     
    一、按先行后列的顺序转换
    即先提取第一行的数据,再依次其他各行。在Sheet2的A1单元格输入公式:
    =OFFSET(Sheet1!A$2,ROW(A5)/5-1,MOD(ROW(A5),5))
    或:
    =OFFSET(Sheet1!$A$2,INT((ROW(A1)-1)/5),MOD(ROW(A1)-1,5))
    或:
    =INDIRECT("Sheet1!"&ADDRESS(INT((ROW(A1)-1)/5)+2,MOD(ROW(A1)-1,5)+1,4))
    然后向下填充公式到最后一个数据,结果如下图。
     
    第一个公式中OFFSET函数的第二个参数“ROW(A5)/5-1”在某些单元格中可能会返回小数,OFFSET函数会自动取整。后两个公式中的“INT((ROW(A1)-1)/5)”在向下填充时依次生成5个相同数为一组的序列数“0、0、0、0、0、1、1、1、1、1、2、2、2、2、2……”,“MOD(ROW(A1)-1,5)”则依次生成“0、1、2、3、4”并循环。本例为6行5列,如果为N行M列,可将公式中用红色标识的数字“5”改为M。
    二、按先列后行的顺序转换
    即先提取第一列的数据,再依次其他各列。在Sheet2的A1单元格输入公式:
    =OFFSET(Sheet1!A$2,MOD(ROW(A6),6),ROW(A6)/6-1)
    或:
    =OFFSET(Sheet1!$A$2,MOD(ROW(A1)-1,6),INT((ROW(A1)-1)/6))
    或:
    =INDIRECT("Sheet1!"&ADDRESS(MOD(ROW(A1)-1,6)+2,INT((ROW(A1)-1)/6)+1,4))
     
    本例为6行5列,如果为N行M列,可将公式中用红色标识的数字“6”改为N。
回复

使用道具 举报

小黑屋|手机版|嘻皮客网 ( 京ICP备10218169号|京公网安备11010802013797  

GMT+8, 2024-4-27 23:28 , Processed in 0.184412 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表