我有多個列表,它們位於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
我有多個列表,它們位於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
我將承擔爲簡單起見,你的原始數據是在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來做這種事情,那麼需要很多數據操作。
請顯示您所需的輸出。 –
我已經顯示了所需的輸出@TimBiegeleisen –
可能的重複[如何使用Excel將矩陣轉換爲單個列](http://stackoverflow.com/questions/28282473/how-to-convert-a-matrix-to -a-single-column-using-excel) –