我正在尝试将许多数据表导入 Powerquery,它们看起来都像这样:
模拟1:
-- | -- | 2024 | 2024 | 2025 | 2025 | 2026 | 2026 | 20XX | 20YY | 2035 | 2035 |
---|---|---|---|---|---|---|---|---|---|---|---|
月 | 小时 | D | A | D | A | D | A | D | A | D | A |
一月 | 5 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
一月 | 6 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
一月 | ... | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
一月 | 23 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
二月 | 5 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
二月 | ... | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
.. | .. | .. | .. | .. | .. | .. | .. | .. | .. | .. | .. |
十二月 | 23 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
模拟2: 相同的格式等
我如何通过powerquery导入它,使其看起来像这样:
月 | 小时 | 年份 | 方向 | 价值 |
---|---|---|---|---|
一月 | 5 | 2024 | D | 1 |
一月 | 5 | 2026 | D | 5 |
.. | .. | .. | .. | .. |
三月 | 7 | 2028 | A | .. |
十二月 | 23 | 2026 | A | 6 |
任何涉及旋转的东西似乎都不起作用,因为我无法将年份值完全嵌入数据中。也尝试过转换为列表并重建,但我对 powerquery 也不那么精通。
任何帮助表示赞赏!
你可以试试这个
它处理目录中的所有文件和工作表,然后根据要求进行转换
let Source = Folder.Files("C:\temp9"),
#"Filtered Rows" = Table.SelectRows(Source, each ([Extension] = ".xlsx")),
#"Removed Other Columns" = Table.SelectColumns(#"Filtered Rows",{"Name", "Content"}),
#"Added Custom" = Table.AddColumn(#"Removed Other Columns", "GetFileData", each Excel.Workbook([Content],true)),
#"Expanded GetFileData" = Table.ExpandTableColumn(#"Added Custom", "GetFileData", {"Data", "Hidden", "Item", "Kind", "Name"}, {"Data", "Hidden", "Item", "Kind", "Sheet"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded GetFileData",{"Content", "Hidden", "Item", "Kind"}),
#"Added Custom1" = Table.AddColumn(#"Removed Columns", "Data2", each
let #"Removed Top Rows" = Table.Skip([Data],1),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Removed Top Rows", {"Column1", "Column2"}, "Attribute", "Value"),
z = {List.Repeat(List.Combine(List.RemoveFirstN(Table.ToColumns(Table.FirstN([Data],1)),2)),Table.RowCount([Data])-1)},
combined = Table.FromColumns(z&Table.ToColumns(#"Unpivoted Other Columns"))
in combined),
List = List.Union(List.Transform(#"Added Custom1"[Data2], each Table.ColumnNames(_))),
#"Expanded Data" = Table.ExpandTableColumn(#"Added Custom1", "Data2", List,List),
#"Removed Columns1" = Table.RemoveColumns(#"Expanded Data",{"Data"})
in #"Removed Columns1"