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

Power Query:按PPID分组筛选最新日期数据

Power Query 按PPID分组保留最新日期所有记录的解决方案

核心思路

先计算每个PPID组内的最大日期,再筛选出原表中日期等于组内最大日期的所有行,既能保留同一PPID下所有最新日期的记录,也能完整保留monthly、%AMI、%Pvty等所有列。


方法一:自定义列匹配最大日期

  1. 将数据导入Power Query编辑器,先确认日期列是「日期」类型(若不是,选中日期列→右键→更改类型→日期)。
  2. 添加自定义列计算每组最大日期:
    • 点击「添加列」→「自定义列」,输入以下公式(替换占位符为你的实际内容):
      List.Max(Table.SelectRows(#"你的上一步骤名", (x) => x[PPID] = [PPID])[你的日期列名])
      
      示例:如果上一步骤是「源」,日期列叫「收入日期」,公式为:
      List.Max(Table.SelectRows(源, (x) => x[PPID] = [PPID])[收入日期])
      
  3. 筛选符合条件的行:
    • 点击自定义列的筛选器→选择「等于」→在下拉框中选择你的原日期列(比如「收入日期」),此时只会保留日期等于组内最大日期的行。
  4. 删除新增的自定义列,关闭并上载数据即可。

方法二:分组后合并匹配

  1. 导入数据到Power Query,确认日期列类型正确。
  2. 按PPID分组计算最大日期:
    • 点击「转换」→「分组依据」,设置参数:
      • 分组依据:PPID
      • 新列名:最新日期
      • 操作:最大值
      • 列:选择你的日期列
  3. 合并原表与分组表:
    • 选中原表(比如「源」)→点击「合并查询」→「合并查询作为新查询」,选择刚分组得到的表,匹配列选PPID,合并类型选「左外部」。
  4. 展开合并列:点击合并列右侧的展开按钮,仅勾选「最新日期」列。
  5. 筛选行:添加筛选条件,原日期列等于「最新日期」列。
  6. 删除「最新日期」列,关闭并上载数据。

为什么移除重复项无法满足需求

移除重复项的逻辑是保留每组匹配条件的第一条记录,如果同一PPID下有多个相同最新日期的记录,该方法会直接删除其他同日期的行,无法实现「保留所有最新日期记录」的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:46:10