导入由分组的年度列表示的数据

问题描述 投票:0回答:1

我正在尝试将许多数据表导入 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 也不那么精通。

任何帮助表示赞赏!

powerquery m
1个回答
0
投票

你可以试试这个

它处理目录中的所有文件和工作表,然后根据要求进行转换

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"

© www.soinside.com 2019 - 2024. All rights reserved.