在Excel中将1个长单列转换为2列用于打印目的

基本上我有一个超过10万名需要打印的名单。 为了节省空间,我希望他们显示为2列,似乎无法find一个简单的方法来做到这一点。

目前:

1. A 2. B 3. C 4. D 5. E 6. F 7. G 8. H 9. I 10. J 

我想要做的是:

 1. A 6. F 2. B 7. G 3. C 8. H 4. D 9. I 5. E 10. J 

我也可以用:

 1. A 2. B 3. C 4. D 5. E 6. F 7. G 8. H 9. I 10. J 

如果您的数据在列A和B中,请在列C第一行中input以下公式,将其拖动到右侧,然后向下拖动,

 =IF(ISODD(COLUMN()),INDEX($A:$A,ROW()*2-1,0),INDEX($A:$A,ROW()*2,0)) 

在这里输入图像描述

我想知道是否可以开发一个相当一般的解决scheme。

这是两列的公式

 =IF(ROW()<=(COUNTA($A:$A)+3-COLUMNS($B:C))/2,INDEX($A:$A,COUNTIFS($B:B,"<>",$B:B,"<> ")+ROW())," ") 

从C栏开始

在这里输入图像说明

这可以通过改变常量改变为3列

 =IF(ROW()<=(COUNTA($A:$A)+4-COLUMNS($B:C))/3,INDEX($A:$A,COUNTIFS($B:B,"<>",$B:B,"<> ")+ROW())," ") 

在这里输入图像说明

编辑

没有COUNTIFS有点慢,公式是

 =IF(ROW()<=(COUNTA($A:$A)+2-COLUMNS($B:B))/2,INDEX($A:$A,(COUNTA($A:$A)+3-COLUMNS($B:B))*(COLUMNS($B:B)-1)/2+ROW()),"") 

 =IF(ROW()<=(COUNTA($A:$A)+3-COLUMNS($B:B))/3,INDEX($A:$A,(COUNTA($A:$A)+4-COLUMNS($B:B))*(COLUMNS($B:B)-1)/3+ROW()),"")