2017-09-21 143 views
1

基本上,我有一個超過100,000個需要打印的名稱的列表。爲了節省空間,我希望它們顯示爲2列,似乎無法找到一個簡單的方法來做到這一點。將1個長單列轉換爲2列用於excel中的打印目的

目前:

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 

我也將與OK:

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

回答

4

如果你的數據是在列A和B ,在C列第一行中輸入以下公式,將其拖動到右側然後向下,

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

enter image description here

+2

也許'= INDEX($ A:$ A,ROW( )* 2-ISODD(COLUMN()),0)'? – Jeeped

+0

不錯!你怎麼能讓這更有活力?說OP要做10行而不是6行。這是一個簡單/快速的改變? – BruceWayne

+1

@Jeeped這很脆和整潔! –

0

我在想,如果我能發展到這樣一個相當普遍的解決方案。

下面是兩列

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

式中C列開始

enter image description here

這可以通過改變常數

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

enter image description here改爲3列

EDIT

沒有其是有點慢的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()),"")