任何人都可以幫助您將Excel表格中的數據轉換爲垂直列表嗎?將表格數據轉換爲Excel中的垂直列表
我試過使用一個宏,但它一直在跳起來,我不知道我要去哪裏錯了。
我正在下載一個大型數據表,但這些數據需要放在工作表上另一個宏的列表中。有了多少數據,手動執行它是不切實際的,所以我想知道是否有快速的方法。
在此先感謝!
任何人都可以幫助您將Excel表格中的數據轉換爲垂直列表嗎?將表格數據轉換爲Excel中的垂直列表
我試過使用一個宏,但它一直在跳起來,我不知道我要去哪裏錯了。
我正在下載一個大型數據表,但這些數據需要放在工作表上另一個宏的列表中。有了多少數據,手動執行它是不切實際的,所以我想知道是否有快速的方法。
在此先感謝!
你可以在一個公式中做到這一點。假設你有一個電子表格,其中看起來像這樣(我已經把僞數據表示該單元的位置,這樣就可以看到它結束了):
在另一個小區(或另一片)把下面的公式:
=OFFSET($A$1,INT((ROW(1:1)-1)/8),(COLUMN(A:A)-1)+MOD(ROW(1:1)-1,8))
,兩個8的公式中有沒有因爲片具有8列,如果它有或多或少你會改變這8對您的電子表格中的列數。
然後您將該公式拷貝下來,你會得到這樣的:
它的工作原理,因爲它使用的偏移公式,得到一個單元的使用行和列的參考內容。
INT((ROW(1:1)-1)/8)
這部分可以確保行數不從1移動到2等,直到8行新配方已經建立,使房間爲8列被複制。
(COLUMN(A:A)-1)+MOD(ROW(1:1)-1,8)
這部分帶柱和1增加爲每行下來,我們去,直到我們到達第8列時,MOD函數返回到0,我們開始一個新的數據行上的原片。
有些東西謊言這應該爲雅做的伎倆。
Sub TransposeThis()
Set Rng = Sheets("sheet1").Range("B2:B6") 'Input range of all fruits
Set Rng_output = Sheets("sheet2").Range("B2") 'Output range
For i = 1 To Rng.Cells.Count
Set rng_values = Range(Rng.Cells(i).Offset(0, 1), Rng.Cells(i).End(xlToRight)) 'For each fruit taking the values to the right which need to be transposed
If rng_values.Cells.Count < 16000 Then 'To ensure that it doesnt select till the right end of the sheet
For j = 1 To rng_values.Cells.Count
Rng_output.Value = Rng.Cells(i).Value
Rng_output.Offset(0, 1).Value = rng_values.Cells(j).Value
Set Rng_output = Rng_output.Offset(1, 0) 'Shifting the output row so that next value can be printed
Next j
End If
Next i
End Sub
前:
後:
或者,如果你只是想一切都轉成一個單一的載體,這聽起來有點不可思議,但可能需要這樣的東西,你可以試試下面的腳本。
Sub TryThis()
Dim rRow As Range
Dim nCol As Long
Dim iOfs As Long
Application.ScreenUpdating = False
With Sheet1.Range("A1:E20")
nCol = .Columns.Count
For Each rRow In .Rows
rRow.Copy
Sheet2.Range("A2").Offset(iOfs).PasteSpecial Transpose:=True
iOfs = iOfs + nCol
Next rRow
End With
Application.ScreenUpdating = True
End Sub
沒有太多的錯誤描述基於哪些嘗試解決您的情況,但你[試過](https://stackoverflow.com/questions/20541905/convert-matrix-to-3-column-表反向樞轉逆透視-弄平正常/ 20543651#20543651)? – pnuts
如果您知道宏,然後嘗試對數據範圍進行計數並將其用於轉置。 – Shrikant
表單中有多少列數據?你能展示一下牀單的外觀嗎? –