如何在Power Query中通过类VLOOKUP方式填充F/G/H列的缺失值?
在Power Query中基于A/B列填充F/G/H列的"?"值
方法一:用合并查询实现类VLOOKUP效果
提取参照表
- 复制当前查询(右键查询名→复制),命名为「参照表」
- 在「参照表」中筛选F、G、H列均不为"?"的行,只保留A、B、F、G、H列
- (可选)添加合并键列:新建自定义列,公式为
= Text.Combine({[A], [B]}, "-"),把A、B列合并成唯一标识,方便后续匹配
关联原表与参照表
- 回到原查询,同样添加和参照表规则一致的合并键列(如果之前做了的话)
- 点击「合并查询」→选择「参照表」,匹配条件选A列和B列(或合并键列),合并类型选「左外部」
- 展开合并后的列,只选择参照表的F、G、H列(重命名为「匹配F」「匹配G」「匹配H」避免冲突)
替换"?"值
- 对原表的F列新建自定义列:
= if [F] = "?" then [匹配F] else [F],同理处理G、H列 - 删除原F、G、H列,把新列重命名为F、G、H,再删掉合并键、匹配列等临时列
- 对原表的F列新建自定义列:
方法二:直接用LookupValue函数(Power BI环境适用)
如果是在Power BI的Power Query编辑器中,可以直接用LookupValue函数一步完成,不需要额外建参照表:
- 对F列新建自定义列:
公式逻辑:在当前数据源中,找到A列等于当前行A、B列等于当前行B的记录,返回对应的F列值;如果当前行F列不是"?", 直接保留原数值。= LookupValue(源[F], 源[A], [A], 源[B], [B], [F]) - 同理复制公式到G、H列,最后替换原列即可
常见问题提示
之前用条件列失败,大概率是没同时基于A、B两列做匹配,或者没筛选出完整的参照数据导致匹配结果不准确。确保匹配时同时关联A和B两列,避免出现一对多的匹配错误。
内容的提问来源于stack exchange,提问作者Muniz Reza
相关产品推荐
相关产品推荐

