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

如何使用Power Query对比两个CSV文件,查找用户增删及密钥集变更?

Excel Power Query 双CSV用户密钥对比实现方案

操作步骤

1. 导入并标记两份源数据

  • 你已经将CSV放入指定文件夹,导入时新增数据日期自定义列,区分是首日(Day1)还是次日(Day2)数据,保留用户、密钥、数据日期三列即可
  • 也可以分别导入两份CSV为两个独立查询,分别命名为Day1数据、Day2数据,结构统一为【用户、密钥】两列

2. 全外部联接合并两份数据

  • 新建空白查询,选择合并查询功能,联接种类选完全外部(左和右),匹配列为用户
  • 展开合并后的嵌套列,得到最终基础结构:用户、Day1密钥、Day2密钥三列
    对应的M代码片段参考:
= Table.NestedJoin(Day1数据, {"用户"}, Day2数据, {"用户"}, "Day2数据", JoinKind.FullOuter)
= Table.ExpandTableColumn(上一步操作名称, "Day2数据", {"密钥"}, {"Day2密钥"})
= Table.RenameColumns(上一步操作名称,{{"密钥", "Day1密钥"}})

3. 新增对比结果列判断状态

  • 新增自定义列变更类型,公式逻辑:
    • 如果Day1密钥为空 → 新增用户
    • 如果Day2密钥为空 → 移除用户
    • 如果Day1密钥不等于Day2密钥 → 密钥变更
    • 其余情况 → 无变化
      自定义列公式:
      if [Day1密钥] = null then "新增用户" else if [Day2密钥] = null then "移除用户" else if [Day1密钥] <> [Day2密钥] then "密钥变更" else "无变化"
  • 再新增变更详情列,公式:
    if [变更类型] = "密钥变更" then "原密钥:" & [Day1密钥] & " → 新密钥:" & [Day2密钥] else null

4. 过滤输出结果

  • 过滤掉变更类型为无变化的行,剩余结果完全匹配你的预期:
用户变更类型变更详情
Dave 1移除用户null
Dave 2密钥变更原密钥:Key 4/ Key 5 → 新密钥:Key 1/ Key 5
Dave 5新增用户null

可参考的学习方向

  • Power Query 联接种类逻辑:重点掌握完全外部、左外部、内部联接的适用场景
  • Power Query 自定义列与条件判断语法
  • 文件夹批量导入自动化逻辑:后续可优化为每日只需将新CSV放入指定文件夹,刷新即可自动生成对比结果,无需手动调整查询

内容的提问来源于stack exchange,提问作者Mickey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:45:03