INDIRECT函数实例:多列数据转一列

表亲们好哈,今天给大家带来的是一个用函数实现行列转换的技巧。

如下图所示,是一份某单位员工姓名表:

这个表中的姓名只有一列,却有140多行。如果以这样的版式打印,不仅浪费纸张,打印出的效果估计也能让领导掉头发的。

因此在打印之前,需要将A列姓名转换为适合打印的5列多行。以前咱们学习过借助WORD实现一列变多列的技巧,今天再给大家说说用函数公式如何来实现这样的效果。

D2单元格输入以下公式,向右向下复制:

=INDIRECT("a"&5*ROW(A1)-4+COLUMN(A1))&""

如需调整转换后的列数为6列,可修改公式为:

=INDIRECT("a"&6*ROW(A1)-5+COLUMN(A1))&""

思路解析:

1、“5*ROW(A1) -4+COLUMN(A1)”部分的计算结果为2。

公式向下复制填充时ROW(A1)依次变为ROW(A2)、ROW(A3)……,计算结果分别为7、12……,即生成公差为5的自然数序列。

公式向右复制填充时COLUMN(A1)依次变为COLUMN(B1)、COLUMN(C1)……,计算结果分别为3、4……即生成公差为1的自然数序列。

2、与字符"A"连接成一个单元格地址“An”,最后用INDIRECT函数返回文本字符串所指定的引用,得到相应单元格的内容。公式向右、向下复制填充,完成多行5列的转换。

公式最后使用&""的目的是为了屏蔽在行列转换时,数据不足一行出现的0值。

行列转换完成,再添加字段标题,设置打印区域就可以了。

图文制作:祝洪忠

易学宝微视频教程,1290个Office技巧精粹,每个技巧都与实际工作密切相关。轻松学习技巧,练就职场达人,淘宝搜索关键字:ExcelHome易学宝

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180129B02S8200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券