phpexcel 超长多列数据获取_一列数据转多列,真让人头疼!

在日常工作中,你应该会遇到这种情况:你要将姓名打印出来,但是有很多行数据,如果不做任何设置直接打印,会很浪费纸张,并且也不好阅读,比如下面的姓名表,姓名很多,需要打印出来。

但是如果可以把这一列姓名,分成多列数据的话,打印出来的结果肯定符合我们的要求。

c602fa5c7d486cf8137146cc8a71a1f2.png

如果你不嫌麻烦的话,可以手动复制粘贴。

不过,如果要打印的表格很多的话,重复操作太浪费时间了,我们有必要提高效率。

在这里给你介绍一个函数indirect(),用它就可以实现效果了。

 ●    indirect()函数

1.   定义:返回文本字符串所指定的引用。

2.   语法结构:indirect(ref_text,[a1])

  ①.  Ref_text:为对单元格的引用。

  ②.  a1:为逻辑值,指明包含在单元格ref_text 中的引用的类型,可缺省。

 ●    详细步骤

在这里,我希望将姓名分成5列来打印,也就是每5个姓名为一行。那么就要找出规律来,横向是值为1的等差序列,纵向是值为5的等差数列。如果用单元格来表示,如下图所示

c683d0ecf3950bbc6c038100a1cb0d55.png

找出了规律,就可以输入公式了,在D1单元格输入公式:

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

往右填充到H1,然后往下填充,直到出现空值为止。

ae7c579c28620a9345b40e717e3b6758.gif

 ●    公式解释

1.“5*ROW(A1)-4+COLUMN(A1)”这部分是用来计算引用单元格的行值,ROW(A1)获取A1的行号,COLUMN(A1)获取A1的列值,即变成“5*行号-4+列值”。同一行的行号不变,每5个单元格换行,所以乘以5,换行时数值增加5;同一行的列值随着往右填充加1,就形成了等差数列,但是“5*行号”会有个初始值,所以要减4 。

2.公式最后使用&""的目的是为了在往下填充时,如果姓名没有了就显示为空值。

本周预告

01.21   行列转置的方法,你知道吗?

01.22   含有合并单元格的转置,数据透视表就能解决~

01.23   数据不断变化,如何实现动态求和呢?

01.24   多重判断,不妨用choose函数

01.25   一列数据转多列,真让人头疼!

71b1e4154b2e42c9c956381ded7c0ca1.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值