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
重命名的列