You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 09:27:05