[英]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.