在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()),"")