周一至周五 : 08:30 - 17:30 客服专员电话/微信:17301649371 QQ:2627049059
微信咨询

扫码微信咨询

关注公众号

关注微信公众号

电话: 021 5161 9370
返回顶部
如何将多列数据合并为一列(公式法)
显示全部楼层 倒序浏览 发表日期 2014-02-08 11:53:24 4168次阅读 1次回复
这是一个利用 OFFSET 函数嵌套 MOD函数、INT函数、ROW函数 来实现将多列数据合并为单列数据的教程。

    本文中的 OFFSET 公式由 WPS论坛 @落寞冬日 提供,特此表示感谢!


    如图,我们有3列数据,每列有4行,要将其按列合并为一列,应该如何操作呢?


    我们可以使用 OFFEST 函数嵌套 MOD、INT、ROW 等函数,来实现这一个需求。

    公式 1
  • =OFFSET($A$2,MOD(ROW(A2)-2,4),INT((ROW(A2)-2)/4))
    公式讲解


    1、OFFSET函数:

    offset 在英语中是偏移量的意思。OFFSET 函数的作用,就是以一个指定的单元格为参照系,然后通过列、行的偏移,返回一个新的引用。
    比如我想求得图1中,A2单元格向下3列,向右2列的单元格的值,可以使用下面的公式:

  • =OFFSET(A2,3,2)


    A1单元格向下偏移3行,向右偏移2列,最终到达的是C5单元格。因此计算结果为C5单元格的值:C4。

    回到题目,要达到多列数据合并为一列的需求,我们也可以用 OFFSET 函数来实现。

    我们先把构建这个公式所需要的各个参数列举出来:


    第一个参数,参照区域,我们采用数据区左上角的单元格,A2。为保证将来公式填充后这个参数的数值不变,我们给它加上绝对引用,变为 $A$2。

    第二个参数“所需列偏移量”和第三个参数“所需行偏移量”,需要再另外构建公式。

    2、构建列偏移量

    从上图我们可以看到,我们所需的列偏移量是一组数列:0, 1, 2, 3, 0, 1, 2, 3, ... 构建这个数列,我们可以采用下面的公式:
  • =MOD(ROW(A2)-2,4)

     
    ① 求单元格 A2 的行号,计算结果为2。
    ② 此处填写数据区左上角所在单元格的行号。在本例中,数据区左上角为 A2 单元格,可以直接填写 A2 单元格的行号”2”,也可以填写为公式:ROW($A$2)
    ③ ①-②,计算结果为0。
    ④ 此处填写数据区的总行数。在本例中,数据一共有4行,可以直接填写4,也可以填写公式:ROWS($A$2A$5)
    整个公式表示:求A2单元格的行号,然后减去2,所得结果再除以4,最后求所得余数。计算结果为0。

    下图是构建列偏移量公式时的思路,可参考。


    3、构建行偏移量

    从上图我们可以看到,我们所需的行偏移量是一组数列:0, 0, 0, 0, 1, 1, 1, 1, ... 构建这个数列,我们可以采用下面的公式:

  • =INT((ROW(A2)-2)/4))

      

    ① 求单元格 A2 的行号,计算结果为2。
    ② 此处填写数据区左上角所在单元格的行号。在本例中,数据区左上角为 A2 单元格,可以直接填写 A2 单元格的行号”2”,也可以填写为公式:ROW($A$2)
    ③ ①-②,计算结果为0。
    ④ 此处填写数据区的总行数。在本例中,数据一共有4行,可以直接填写4,也可以填写公式:ROWS($A$2A$5)
    整个公式表示:求A2单元格的行号,然后减去2,所得结果再除以4,将所得结果向下取整。计算结果为0。
    下图是构建行偏移量公式时的思路,可参考。

    除了上面的 OFFSET 函数外,INDEX 函数也可以完成这一需求:

     公式 2
  • =INDEX($A$2C$5,MOD(ROW(A2)-2,4)+1,INT((ROW(D2)-2)/4)+1)
      可以看出,两者的原理是相似的。公式 1 使用 INT 函数和 ROW 函数来计算列偏移量,公式 2 用它来计算列序数。公式 1 使用 MOD 函数和 ROW 函数来计算行偏移量,公式 2 用它来计算行序数。但公式 1 的第一个参数只需要设定数据区左上角单元格的地址($A$2), 公式 2 却需要设定整个数据区的地址($A$2C$5);而且 公式 2 在计算行序数、列序数时也比 OFFSET 在计算行偏移量、列偏移量时多了一步(最后面的"+1"),所以如果严格比较,还是使用 OFFSET 函数来计算更方便些。
联系QQ:1327452797
写的特别好,清晰,我这种小白都能看懂。

精彩评论1

写的特别好,清晰,我这种小白都能看懂。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则  允许回帖邮件提醒楼主

快表软件是国内较早研究表格类软件开发平台的团队之一,迄今已有十多年的行业经验.致力于为企事业单位提供实用可靠的数字化平台。
  • 微信公众号

  • 微信小商店

  • 微信客服

  • Powered by Discuz! X3.4 | Copyright © 2022-2024, XiRong Soft. | 快表软件
  • 沪ICP备13033196号 | 营业执照 |上海西戎软件科技有限公司|沪公网安备31011502002146号|沪ICP备13033196号 |