Power Query按列值关联不同查询:求M代码示例
条件关联不同查询的M代码实现
完全可以实现,核心思路是按MergeQuery1[A]的取值拆分数据集,分别关联对应的查询后再合并结果。以下是Power Query高级编辑器中的M代码示例(假设三个查询都有一个共同的关联字段KeyColumn,请替换为你实际的关联列名):
let // 筛选A列为Value 1的行,关联Query 2 Value1_Group = Table.SelectRows(MergeQuery1, each [A] = "Value 1"), Merged_Value1 = Table.NestedJoin( Value1_Group, {"KeyColumn"}, // 替换为你的实际关联列 Query2, {"KeyColumn"}, // Query2中对应的关联列 "Query2_Data", JoinKind.LeftOuter ), Expanded_Value1 = Table.ExpandTableColumn( Merged_Value1, "Query2_Data", {"B", "C", "D"}, // 需要提取的Query2列 {"Query2.B", "Query2.C", "Query2.D"} ), // 筛选A列为Value 2的行,关联Query 3 Value2_Group = Table.SelectRows(MergeQuery1, each [A] = "Value 2"), Merged_Value2 = Table.NestedJoin( Value2_Group, {"KeyColumn"}, // 替换为你的实际关联列 Query3, {"KeyColumn"}, // Query3中对应的关联列 "Query3_Data", JoinKind.LeftOuter ), Expanded_Value2 = Table.ExpandTableColumn( Merged_Value2, "Query3_Data", {"X", "Y", "Z"}, // 需要提取的Query3列 {"Query3.X", "Query3.Y", "Query3.Z"} ), // 合并两个分组的结果 Combined_Result = Table.Combine({Expanded_Value1, Expanded_Value2}) in Combined_Result
关键说明:
- 如果你的关联逻辑不是基于共同键,而是其他规则,可以修改
Table.NestedJoin的参数,或者改用Table.AddColumn配合自定义函数实现匹配 JoinKind.LeftOuter可以根据需求替换为JoinKind.Inner等其他连接类型- 列名前缀(如
Query2.)是为了避免列名冲突,可根据需要调整或移除
内容的提问来源于stack exchange,提问作者R C
相关产品推荐
相关产品推荐

