多列转一列
下图中,需要将A1:C5共15个单元的内容竖向排列(转1列),首先排列第一行A1-C1单元格,接着排列A2-C2单元格…依次类推;
F列是排列之后每个单元格的位置;G-H列为每个单元格通过A1单元格偏移量的值。
先来看偏移的行数,每隔三个数偏移行加1,这里可以用(ROW(A1)-1)/3来实现,ROW函数返回当前单元格的行数,公式下拉的时候:
ROW(A1)返回1,(1-1)/3等于0,OFFSET函数中返回0;
ROW(A2)返回2,(2-1)/3不足1,OFFSET函数中返回0;
ROW(A3)返回3,(3-1)/3不足1,OFFSET函数中返回0;
ROW(A4)返回4,(4-1)/3等于1,OFFSET函数中返回1;
ROW(A5)返回5,(5-1)/3不足2,OFFSET函数中返回1;
………..
每隔开三个数,行位移增加1;
再来看偏移的列数,0,1,2/0,1,2反复循环,因为只有三列,只需要偏移3次即可遍历数据源,这里用MOD(ROW(A1)-1,3)公式来实现,MID函数为取余函数:
MOD(ROW(A1)-1,3)等价于MOD(1-1,3)余数为0,OFFSET函数中返回0;
MOD(ROW(A2)-1,3)等价于MOD(2-1,3)余数为1,OFFSET函数中返回1;
MOD(ROW(A3)-1,3)等价于MOD(3-1,3)余数为2,OFFSET函数中返回2;
MOD(ROW(A4)-1,3)等价于MOD(4-1,3)余数为0,OFFSET函数中返回0;
……
0,1,2三个一循环。
所以最终的公式为:
= OFFSET($A$1,(ROW(A1)-1)/3,MOD(ROW(A1)-1,3))&""
公式最后的【&""】是为了防止出现0(也可以不加)。
注意这里的相对引用与绝对引用($在Excel中表示绝对引用,即拖拽公式,单元格引用位置不发生变化,始终为A1单元格)
相对引用和绝对引用可以看下这篇文章:Excel相对引用与绝对引用,傻傻分不清?
小结:
这里需要转变的区域只有3列,如果有N列的话,只需要将公式中的3换成N即可。
其它三种行列的转换方法都是通过OFFSET函数来实现,原理基本一致,通过研究一个案例来举一反三,才能有所成长收获~
本文地址:百科问答频道 https://www.neebe.cn/wenda/700450_2.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!