求助:去除重复Payment ID,仅保留对应账龄记录以制作准确透视表
处理重复Payment ID并保留对应账龄的解决方案
首先得明确核心需求:同一个Payment ID对应多个账龄时,你需要保留最长账龄还是最短账龄?通常账龄分析会优先保留最长的,下面的方法默认按「保留最长账龄」操作,要改最短的话调整排序/取值逻辑就行。
方法1:Power Query(推荐,操作直观)
- 选中你的数据区域(包含Payment ID和账龄列),点击「数据」选项卡 → 「从表格/区域」(Excel 2016及以后版本自带)
- 在Power Query编辑器里,新增一列用于标记账龄优先级,输入公式:
=if [账龄区间] = "1-30" then 1 else if [账龄区间] = "31至60" then 2 else if [账龄区间] = "61至90" then 3 else 4 - 选中Payment ID列,点击「主页」→ 「分组依据」,设置:
- 分组依据:Payment ID
- 新列名:最高优先级
- 操作:最大值
- 列:刚才新增的优先级列
- 将分组后的表和原数据合并(按Payment ID+优先级列匹配),删除重复的Payment ID记录,只保留匹配结果
- 点击「关闭并上载」,得到每个Payment ID仅对应一条最长账龄的干净数据
方法2:辅助列+排序+删除重复(适合新手)
- 插入辅助列(比如C列),输入公式(假设账龄在B列):
=IF(B2="1-30",1,IF(B2="31至60",2,IF(B2="61至90",3,IF(B2="91至180",4,"")))) - 下拉填充整列,给每个账龄区间赋值(数字越大,账龄越久)
- 选中整个数据区域,按「Payment ID」升序排序,再按辅助列降序排序(确保每个Payment ID的最长账龄排在最上方)
- 选中Payment ID列,点击「数据」→ 「删除重复项」,仅勾选Payment ID,确认后即可得到每个Payment ID只保留最长账龄的记录
方法3:数组公式匹配(适配老版本Excel)
- 先按方法2的步骤给账龄赋值(辅助列C)
- 插入新辅助列D,输入数组公式(输入完成后按Ctrl+Shift+Enter确认):
=MAX(IF($A$2:$A$100=A2,$C$2:$C$100)) - 筛选出C列等于D列的记录,这些就是每个Payment ID对应最长账龄的唯一记录
如果需要保留最短账龄,只需把辅助列排序改为升序,或者把公式里的MAX替换成MIN即可。
内容的提问来源于stack exchange,提问作者madrid
相关产品推荐
相关产品推荐

