PQ 一对多查询的时候,能否像 Excel 函数一样只返回第一条记录?
- 2026-11-09 02:55:06
公众号平台最新的推送规则对技术类文章不太友善,如果不想错过干货,请务必“设为星标”哦!!!
点击任意文章上方的“☆星标”即可。

vlookup 和 xlookup 查找的结果默认是一对一的,有多条符合条件的记录时会返回第一条匹配记录。需要多对多查询的时候,最方便的就是用 PQ。
现在反过来问,PQ 能否像公式一样,只返回第一条符合的查询结果?
案例:
根据下图 1 中 F 列的姓名从左侧数据表中匹配出第一条结果,效果如下图 2 所示。


解决方案:
1. 选中左侧数据表的任意单元格 --> 选择任务栏的“数据”-->“从表格”

2. 在弹出的对话框中保留默认设置 --> 点击“确定”

表格已上传至 Power Query。

3. 将公式栏中的 datetime 改成 date。


日期后面多余的时间就不再显示了。

4. 选择任务栏的“主页”-->“关闭并上载”-->“关闭并上载至”

5. 在弹出的对话框中选择“仅创建连接”--> 点击“加载”

6. 将右侧的数据表也上传至 Power Query。



7. 选择任务栏的“主页”-->“合并查询”

8. 在弹出的对话框中选中“姓名”列 --> 在下拉菜单中选择“表1”--> 选中“姓名”列 --> 点击“确定”


此时匹配出来的结果是一对多的。如果只要匹配出第一个结果,只需稍微修改一下公式。
如果不用公式,将结果扩展开来,删除重复项当然也是可以的。今天教大家姿势更帅的方法。

9. 在原有公式的前面和后面分别加上 Table.TransformColumns( 和 ,{"表1",Table.First})。




10. 点开“表1”旁边的扩展钮 --> 取消勾选“姓名”和“使用原始列名作为前缀”--> 点击“确定”

11. 将“日期”列的格式修改为日期。


12. 删除“姓名”列。


13. 选择“主页”-->“关闭并上载”-->“关闭并上载至”

14. 在弹出的对话框中选择“表”--> 选择“现有工作表”和所需上传至的位置 --> 点击“加载”

右侧绿色的表格就是第一条匹配结果。

转发、点赞、在看也是爱!