PowerBI - [PQ - 合并查询]获取同一文件夹下的多个文件

背景: 现有文件数据,Test Data下有三个文件夹CN,EN,JP,每个文件夹下面有两个Excel文件命名为Actual,Plan

 

 


读取数据步骤:

Step1 - 打开PBI并连接到文件夹,点击【转换数据】进入Power Query界面

 (可选) Step2 - 选择路径列,点击添加列>提取>选范围>提取路径中的Country信息.

 Step3 - 添加自定义列,如果源文件是Excel,写 each Excel.Workbook([Content],true)  ;

           若源文件是CSV,写 each Csv.Document([Content],null,null,null,936)。

 Step4 - 展开【提取数据】列后,选择Data列和文本范围(Country),删除其他列 

 Step5 - 展开Data列,然后将文本范围重命名为Country。

完。


 附 Issue#1 - Plan Data 包含了今年一年的数据,Actual目前只有1-5 月的数据。 想用PowerBI 把Plan和Actual 放在一张表,并用Actual的数据替换Plan 的数据。(如果Actual 有6月的数据,刷新PBI后自动用Actual 6月的数据替换Plan的数据。。)

实现:
1 - 在Plan表查询Actual表,并添加自定义列将plan表Value 替换为Actual.Value (  each if [actual.Value1]=null then [Value1] else [actual.Value1] )
2 - 若表内有多个Value,用 and 连接多个条件

let
    源 = Table.NestedJoin(plan, {"Year", "Month"}, actual, {"Year", "Month"}, "actual", JoinKind.LeftOuter),
    #"展开的“actual”" = Table.ExpandTableColumn(源, "actual", {"Value1"}, {"actual.Value1"}),
    已添加自定义 = Table.AddColumn(#"展开的“actual”", "自定义", each if [actual.Value1]=null then [Value1] else [actual.Value1]),
    删除的列 = Table.RemoveColumns(已添加自定义,{"Value1", "actual.Value1"}),
    重命名的列 = Table.RenameColumns(删除的列,{{"自定义", "Value"}})
in
    重命名的列

 

posted @ 2021-04-25 17:02  未必是小小  阅读(3266)  评论(0编辑  收藏  举报