標題:
access行轉列
[打印本頁]
作者:
p80252588
時間:
2013-12-16 23:58
標題:
access行轉列
以下遇到一個難題,如何把統計結果,把橫式變直式
如:以下是原料的統計結果。
產品名稱 |維生素A|維生素B|維生素C|維生素D|維生素E|維生素F|......50個
奶茶 |10.1 |90.4 |3.4 |20.4 |90.2 |159.4 |.......
紅茶 |15.4 |95.4 |214 |79.4 |77.2 |39.4 |.......
...... |...... |...... |...... |...... |...... | ...... |.......
...... |...... |...... |...... |...... |...... | ...... |.......
約一萬個
可以傳換成直式,另外在排序一下。
|奶茶 |紅茶 |..................
維生素A|10.1 |15.4 |..................
維生素B|90.4 |95.4 |..................
維生素C|3.4 |214 |..................
維生素D|20.4 |79.4 |..................
維生素E|90.2 |77.2 |..................
維生素F|159.4|39.4 |..................
維生素G|..................
維生素H|..................
或者其他方式也可以,目的要排序而已。
作者:
p212
時間:
2013-12-17 08:47
本帖最後由 p212 於 2013-12-17 08:56 編輯
回復
1#
p80252588
假設資料位於工作表Sheet1,「產品名稱」位於儲存格A1,「維生素A」位於儲存格B1,「奶茶」位於儲存格A2,奶茶對應的維生素A量位於儲存格B2
若於工作表Sheet2中進行「行轉列」,則
欄位名稱:工作表Sheet2之儲存格B1公式=OFFSET(Sheet1!$A$1,COLUMN(A$1),0),向右複製公式。
列位名稱:工作表Sheet2之儲存格A2公式=OFFSET(Sheet1!$A$1,0,ROW(1:1)),向下複製公式。
相對應數值:工作表Sheet2之儲存格B2公式=OFFSET(Sheet1!$A$1,COLUMN(A$1),ROW(1:1)),向右向下複製公式。
即可得「行轉列」之結果,請參考!
作者:
c_c_lai
時間:
2013-12-17 10:11
回復
1#
p80252588
這是不是吻合你的提問?
[attach]17066[/attach]
作者:
c_c_lai
時間:
2013-12-17 10:18
回復
1#
p80252588
程式碼如下:
Sub Test()
Dim myArray As Variant
With 工作表1
' 下列語法處理後之結果: .Range(.[A1], .[H5])
myArray = .Range(.[A1], .Range(Chr(64 + .[A1].End(xlToRight).Column) & .[A1].End(xlDown)))
' 下列語法處理後之結果: .Range("J1:N8)
.Range("J1:" & Chr(Asc("J") + .[A1].End(xlDown).Row - 1) & .[A1].End(xlToRight).Column).Value = Application.Transpose(myArray)
End With
End Sub
複製代碼
作者:
mmxxxx
時間:
2014-11-4 16:37
奇怪, 這是ACCESS提問, 怎會用EXCEL VBA回答.
這題在MS ACCESS是不行的,
產品名稱有一萬多筆, 換成横列, 即超過, 我想已經超過任何資料庫的欄位數上限限制了.
除非產品名稱没有超上限255才能進行...
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)