将列B,C,D ..中的数据移至列A – excel

我有数据在列B1-B20,C1-C20,D1-D20 ..我喜欢把它移动到所有坐在列A有一个自动化的方式来在Excel中这样做,而不使用VBA?

移动它需要一个macros

在A中获取它可以在A1中使用如下的公式,然后复制下来。

=OFFSET($A$1,MOD(ROW()-1,20),1+INT((ROW()-1)/20)) 

这是一个快速和肮脏的做法。 它利用了INDIRECT()

 =IF(ROW()<=20,INDIRECT("B"&ROW()),IF(ROW()<=40,INDIRECT("C"&ROW()-20),INDIRECT("D"&ROW()-40))) 

这里是一个例子,除了我有3行而不是20行相同的东西。

在这里输入图像说明

编辑: @nutsch有一个更有效的解决scheme