2015-09-01 22 views
0

我有多個列表,它們位於excel的不同列中。我需要做的是將這些數據列組合成一個大列。我不在乎是否有重複的條目。下面,我剛剛顯示了3列,但實際數據有20個這樣的列。列不連續,我想避免在最終輸出中打印空白。合併不同列

 A B C 
     _ _ _ 
ROW1| R U X  
ROW2| S V Y 
ROW3| T W Z 

應合併成1列這樣

 A 
     _ 
Row1| R 
Row2| S 
Row3| T 
Row4| U 
... 
Row12|Z 
+0

請顯示您所需的輸出。 –

+0

我已經顯示了所需的輸出@TimBiegeleisen –

+0

可能的重複[如何使用Excel將矩陣轉換爲單個列](http://stackoverflow.com/questions/28282473/how-to-convert-a-matrix-to -a-single-column-using-excel) –

回答

0

我將承擔爲簡單起見,你的原始數據是在Sheet1,並要在Sheet2中輸出,在開始A1和下降。這是一個理想的VBA項目,但您已經要求提供公式版本 - 這是可能的,但數據更具動態性(更改列,更改行長度等),這會更復雜。

首先,在sheet2上,您將需要確定哪些列保存您的數據。因此,在列d開始在D1和下降,手動輸入這些列,就像這樣:

="A:A" 
="B:B" 
="E:E" 

除了每個這些列的,你會想有多少行是在每一個計數。使用COUNTA函數執行此操作,該函數計算所有非空白單元格[我假設您的sheet1中的數據是連續的,沒有空行。我們還將使用INDIRECT函數來確定要查看的列。所以把這個E1,並拖累:

=COUNTA(INDIRECT("'Sheet1'!"&B1)) 

那麼想的運行總計有多少行至今,一個接一個的列。把這個F2和向下拖動[F1硬編碼爲0]:

=SUM($E$1:E1)+.01 

B列中,我們現在將顯示哪些列該行的數據是從拉動,像這樣[在B1開始,抄下來]:

=INDEX(D:D,MATCH(ROW(),F:F,1)) 

在C列中,我們現在將顯示哪一行的數據將來自被拉動[開始在C1和向下複製]:

=COUNTIF($B$1:B1,B1) 

在A1和拖累儘可能多的總細胞你有數據,把fol降低[從A1開始,並拖拽]:

=INDEX(INDIRECT("'Sheet1'!"&B1),C1) 

這看起來像很多設置 - 因爲它是。如果你不使用VBA來做這種事情,那麼需要很多數據操作。