Board logo

標題: 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
程式碼如下:
  1. Sub Test()
  2.     Dim myArray As Variant
  3.      
  4.     With 工作表1
  5.         '   下列語法處理後之結果:  .Range(.[A1], .[H5])
  6.         myArray = .Range(.[A1], .Range(Chr(64 + .[A1].End(xlToRight).Column) & .[A1].End(xlDown)))
  7.         '  下列語法處理後之結果:  .Range("J1:N8)
  8.         .Range("J1:" & Chr(Asc("J") + .[A1].End(xlDown).Row - 1) & .[A1].End(xlToRight).Column).Value = Application.Transpose(myArray)
  9.     End With
  10. End Sub
複製代碼

作者: mmxxxx    時間: 2014-11-4 16:37

奇怪, 這是ACCESS提問, 怎會用EXCEL VBA回答.
這題在MS ACCESS是不行的,  
產品名稱有一萬多筆, 換成横列, 即超過, 我想已經超過任何資料庫的欄位數上限限制了.
除非產品名稱没有超上限255才能進行...




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)