多行多列转单列(按列的方向)
将下列二维区域中的名字按列的方向转为单列,结果如F列所示。对于这种问题,我们的思路是以终为始,也就是由结果往回推。方法是用引用函数+构造序列数。
offset函数
第一种方法先用offset来做,想要得到F列的结果,先要知道F列结果所对应的单元格是哪些。观察一下可以发现分别为A2,A3,A4,A5,B2,B3,B4,B5,C2……,如G列所示。
这样问题就进一步转化为如何构造出这2个序列数,只要能构造出这2个序列数,就能用offset函数以A2为起点偏移到我们想要的目标单元格。
=OFFSET(A$2,MOD(ROW(A1)-1,4),INT((ROW(A1)-1)/4))&""
indirect函数
我们也可以用indirect这个函数来做。思路是一样的,由结果往回推,先找到F列结果所对应的单元格地址,分别为A2,A3,A4,A5,B2,B3,B4,B5,C2……,如G列所示。
我们可以把G列单元格地址的列标和行号拆分为2列,分别构造。如I列和J列所示。I列是A、A、A、A、B、B、B、B、C……的重复递增序列,同样可以用int函数构造。公式为=CHAR((ROW(A1)-1)/4+65)。
2个序列构造好了,就可以组合在一起,用indirect返回目标单元格了。在F2单元格输入下面的公式,下拉填充,完成。
=INDIRECT(CHAR((ROW(A1)-1)/4+65)&MOD(ROW(A1)-1,4)+2)&""
学完今天的方法,你能否按行的方向转为单列呢?
https://pan.baidu.com/s/1P_qHxj88RUjknWFVkYFNTA
赞 (0)