excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Excel表格多行数据如何转换成一列?用这个公式,轻松搞定

关于如何将多行多列数据转换成一列,有两种转换的方式,一个是按照列的顺序,依次将所有列的数据转换成一列。

而另一个方式,则是在这里要讲解的,是从行开始,一行一行地进行转换,使所有数据全部转换成为一个竖列。

今天我们就来学习一个公式,通过这个公式来达成转换的目的。

=INDEX($A$1:$F$18,INT(ROW(A6)/6),MOD(ROW(A6),6)+1)

看这个公式,使用的是index函数来引用,它的第1参数是引用区域,第2参数是要返回的行序号,第3参数是要返回的列序号。

先来捋一下它的逻辑思路,由于数据表中包含了6列18行,我们的转换顺序是从第1行开始,转换成1列,再接着继续转换第2行,那么,这里就有两个知识点,其实也就是index函数的第2、第3参数的设置。

  • 因此,它实质上是1-6的一个循环!如果有一个公式,可以进行1-6的循环,就能将一行的6个单元格数据进行引用。那在这里,

=MOD(ROW(A6),6)+1

这个公式怎么理解?

mod是求余数的函数,例如mod(3,2),即3除以2,余数是1,所以结果为1.

而row函数的作用是返回行序号,其结果会单元格的变动而变动,比如row(A1)等于1,row(a2)等于2.

MOD(ROW(A6),6)+1,它的结果就是mod(6,6)+1,6除6余数为0,加上1,则结果为1.当向下填充公式时,ROW函数的参数是A7,而row(a7)等于7,mod(7,6)余数为1,加上1的结果为2;而填充6次以后,到第7个单元格,即row(12),等于12,mod(12,6)的余数是0,加上1结果为1.

所以,它的结果就是从1-6的持续循环。

  • index函数公式需要保持,当列序号开始1-6的循环时,第2参数的行序号则要保持不变,或者是重复6次行序号为1.

=INT(ROW(A6)/6)

它是一个向下取整函数,即将不足1的数字取整为1,所以这个公式较易理解,6/6等于1,7/6等于一点几,用int函数向下取整,结果仍然是1;只有当公式向下填充到第7个单元格,即row(12)/6时,也就是12/6,等于2,这时公式开始从2进行重复。

“从1-6进行循环”,“从1开始重复6次”

我们将这两句话的公式套进index函数公式中,再去理解每个参数的含义。

这时index函数的第2参数是INT(ROW(A12)/6),row(a12)的结果是12,除以6等于2,再用int函数取整,结果为2.所以这时index函数公式的行序号为2,即从引用区域的第2行开始。

MOD(ROW(A12),6)+1,row(a12)等于12,mod(12,6)的余数是0,再加上1,因此结果为1,所以第3参数列序号为1.

index($A$1:$F$18,2,1)的含义就是引用$A$1:$F$18单元格区域的第2行第1列数据。

当输入完公式,我们还需要嵌套一个逻辑函数iferror;因为数据较多时,无法一次性将公式填充到合适的位置,而会出现一些错误值,套上iferror函数来忽略错误值并显示为空值。

最后,我们来总结一下,关于多行多列转一列的关键点在于指定序号间的循环往复,和指定次数重复序号。在这种循环和重复的场景中,row函数搭配int和mod函数,是解题的钥匙。所以搞清每个函数的基本含义和基本用法,是excel进阶学习的基础!

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接