Excel Power Query:匹配添加ITEM字段及多条件匹配错误排查
Power Query 需求与问题处理
初始需求
现有Overview和Data两个Query,当前用公式=Data{[NAME.1=[NAME.1]]}能匹配对应行,需要修改公式只提取ITEM列或第0列的数据。
- 直接调整公式即可:
- 提取ITEM列:
=Data{[NAME.1=[NAME.1]]}[ITEM] - 提取第0列:
=Data{[NAME.1=[NAME.1]]}{0}
- 提取ITEM列:
扩展需求
合并Query时,优先匹配NAME.1字段,无匹配结果时再匹配NAME.2字段,将ITEM结果合并至同一列。
- 用
try...otherwise嵌套实现优先级匹配:先执行NAME.1的匹配逻辑,失败则触发NAME.2的匹配。
问题排查
使用公式=try Data{[NAME.1=[NAME.1]]}[ITEM] otherwise Data{[NAME.2=[NAME.2]]}[ITEM]时,部分无匹配项返回错误值,需修正为返回null。
- 给
otherwise中的匹配逻辑也添加try...otherwise,确保两次匹配都失败时返回null,修正后公式:= try Data{[NAME.1=[NAME.1]]}[ITEM] otherwise try Data{[NAME.2=[NAME.2]]}[ITEM] otherwise null
代码疑问
修改Merge代码为多字段匹配后,对{"ITEM", each [ITEM]{0}, Int64.Type})的用法存疑,实际ITEM字段为字母数字组合。
- 问题出在数据类型指定:
Int64.Type是64位整数类型,与字母数字混合的文本字段不兼容,需改为type text,修正后的代码片段:{"ITEM", each [ITEM]{0}, type text} - 额外说明:
each [ITEM]{0}用于从匹配到的结果列表中取第一项;如果能保证匹配结果始终为单行,也可以直接写each [ITEM]。
内容的提问来源于stack exchange,提问作者MMM
相关产品推荐
相关产品推荐

