[英]How to transpose Field in in MS ACCESS
我有一個包含52列的表格,現在我需要轉置包含Date的列
輸入:
2009 2010 2011 2012
30 50 60 80
輸出:
Year Values
2009 30
2010 50
2011 60
2012 80
建議1 :復制數據,將其粘貼在excel中,然后復制並粘貼“特殊” >>“轉置”。 然后將其復制回Access中的新表中
建議2 :VBA。 假設您的表只有一條記錄,其中包含許多許多字段,則如下所示:
Sub transpose()
Dim rs As Recordset
Dim rsField As Field
Dim db As Database
Dim StrSQL As String
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * FROM Table1", dbOpenTable)
'Assuming that there is only 1 record
For Each rsField In rs.Fields
StrSQL = "INSERT INTO Table2 VALUES ('" & rsField.Name & "'," & rsField.Value & ");"
Next rsField
End Sub
Table1
具有多個字段的單個記錄。 Table2
具有兩個字段( YEAR
和VALUE
)
建議3 :1個真正可怕的UNION查詢:
SELECT "2009" as year, [2009] as value FROM Table1
UNION ALL
SELECT "2010" as year, [2010] as value FROM Table1
UNION ALL
SELECT "2011" as year, [2011] as value FROM Table1
UNION ALL
SELECT "2012" as year, [2012] as value FROM Table1
結論 :所有這些都很糟糕,但是您的數據也是如此。 excel解決方案是非常手動的,excel可能會破壞您的數據(刪除前導0,轉換日期格式,其他糟糕的事情)。 解決方案2意味着您必須編寫和維護VBA。解決方案3編寫起來很麻煩,並且如果您有其他類似的表,但是又需要取消數據透視,則很難重復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.