【问题标题】:Transpose multiple sheets in power query在电源查询中转置多张工作表
【发布时间】:2020-07-10 23:04:51
【问题描述】:

我正在尝试转换工作表并使用 power query 组合结果。以下是数据和预期结果。

表 1:

表 2:

电源查询已尝试:

let
    Source = Excel.Workbook(File.Contents("\\ielett12kf56\x230154$\Desktop\Test.xlsx"), null, true),
    #"Removed Columns" = Table.RemoveColumns(Source,{"Item", "Kind", "Hidden"}),
    #"Expanded Data" = Table.ExpandTableColumn(#"Removed Columns", "Data", {"Column1", "Column2", "Column3", "Column4"}, {"Column1", "Column2", "Column3", "Column4"}),
    #"Filtered Rows1" = Table.SelectRows(#"Expanded Data", each ([Name] <> "Sheet3")),
    #"Transposed Table" = Table.Transpose(#"Filtered Rows1"),
    #"Filtered Rows" = Table.SelectRows(#"Transposed Table", each ([Column1] <> null))
in
    #"Filtered Rows"

上面是电源查询是水平转置的,但我需要垂直添加工作表细节

预期结果如下。

【问题讨论】:

  • 您是否还需要如预期输出中所示的第 6 行和第 7 行?

标签: powerbi powerquery


【解决方案1】:

您应该使用取消透视表和追加表。完整脚本下方:

let
Source = Excel.Workbook(File.Contents("C:\Users\snlaln\OneDrive -SAS\Documents\test.xlsx"), null, true),
Sheet1_Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
Sheet2_Sheet = Source{[Item="Sheet2",Kind="Sheet"]}[Data],
#"Changed Type1" = Table.TransformColumnTypes(Sheet1_Sheet,{{"Column1", type text}, {"Column2", Int64.Type}, {"Column3", Int64.Type}, {"Column4", Int64.Type}, {"Column5", Int64.Type}}),
#"Changed Type2" = Table.TransformColumnTypes(Sheet2_Sheet,{{"Column1", type text}, {"Column2", Int64.Type}, {"Column3", Int64.Type}, {"Column4", Int64.Type}, {"Column5", Int64.Type}}),
#"Unpivoted Columns1" = Table.UnpivotOtherColumns(#"Changed Type1", {"Column1"}, "ColumnIndex", "Value"),
#"Unpivoted Columns2" = Table.UnpivotOtherColumns(#"Changed Type2", {"Column1"}, "ColumnIndex", "Value"),
#"Added Custom1" = Table.AddColumn(#"Unpivoted Columns1", "Sheet", each "Sheet1"),
#"Added Custom2" = Table.AddColumn(#"Unpivoted Columns2", "Sheet", each "Sheet2"),
#"Appended Query" = Table.Combine({#"Added Custom1", #"Added Custom2"})

在 #"附加查询"

下面的结果,表格本身可以做出正确的视觉效果。

【讨论】:

    【解决方案2】:

    试试下面的 Power 查询脚本来实现你想要的输出-

    let
        Source = Excel.Workbook(File.Contents("D:\WORK\R&D\Book2.xlsx"), null, true),
    
        sheet1_Sheet = Source{[Item="sheet1",Kind="Sheet"]}[Data],
        sheet2_Sheet = Source{[Item="sheet2",Kind="Sheet"]}[Data],
    
        #"Unpivoted Columns" = Table.UnpivotOtherColumns(sheet1_Sheet, {"Column1"}, "Attribute", "Value"),
        #"Unpivoted Columns2" = Table.UnpivotOtherColumns(sheet2_Sheet, {"Column1"}, "Attribute", "Value"),
    
        #"Pivoted Column" = Table.Pivot(#"Unpivoted Columns", List.Distinct(#"Unpivoted Columns"[Column1]), "Column1", "Value", List.Sum),
        #"Pivoted Column2" = Table.Pivot(#"Unpivoted Columns2", List.Distinct(#"Unpivoted Columns"[Column1]), "Column1", "Value", List.Sum),
    
        #"Removed Columns" = Table.RemoveColumns(#"Pivoted Column",{"Attribute"}),
        #"Removed Columns2" = Table.RemoveColumns(#"Pivoted Column2",{"Attribute"}),
    
        #"Demoted Headers" = Table.DemoteHeaders(#"Removed Columns"),
        #"Demoted Headers2" = Table.DemoteHeaders(#"Removed Columns2"),
    
        #"Demoted Headers1" = Table.DemoteHeaders(#"Demoted Headers"),
        #"Demoted Headers12" = Table.DemoteHeaders(#"Demoted Headers2"),
    
        #"Replaced Value" = Table.ReplaceValue(#"Demoted Headers1","Column1","Sheet1",Replacer.ReplaceValue,{"Column1"}),
       #"Replaced2 Value" = Table.ReplaceValue(#"Demoted Headers12","Column1","Sheet2",Replacer.ReplaceValue,{"Column1"}),
    
        #"Replaced Value1" = Table.ReplaceValue(#"Replaced Value","Column2","Sheet1",Replacer.ReplaceValue,{"Column2"}),
        #"Replaced2 Value1" = Table.ReplaceValue(#"Replaced2 Value","Column2","Sheet2",Replacer.ReplaceValue,{"Column2"}),
    
        #"Replaced Value2" = Table.ReplaceValue(#"Replaced Value1","Column3","Sheet1",Replacer.ReplaceValue,{"Column3"}),
        #"Replaced2 Value2" = Table.ReplaceValue(#"Replaced2 Value1","Column3","Sheet2",Replacer.ReplaceValue,{"Column3"}),
    
        #"Appended Two Sheet" = Table.Combine({#"Replaced Value2", #"Replaced2 Value2"})
    in
        #"Appended Two Sheet"
    

    从 2 张输入样本数据-

    Power BI 中的最终输出-

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      • 2014-06-09
      • 1970-01-01
      相关资源
      最近更新 更多