从50万条交易记录中筛选各协议首笔支付日期的技术求助
提取各协议首笔支付日期的实用方案
针对你50万条交易记录、需获取每个协议最早支付日期的需求,以下是3种精准解决方法,可解决你之前因交易含多日期活动导致的筛选问题:
方法1:Power Query 分步处理(推荐大数据量)
- 导入数据到Power Query
选中数据区域,点击「数据」选项卡 →「自表格/区域」,将数据导入Power Query编辑器。 - 过滤支付类活动记录
找到标记活动类型的列(比如“活动类型”),点击列头筛选按钮,只勾选「支付」类选项(根据你的实际字段值调整),排除非支付的活动日期干扰。 - 按协议分组取最早日期
点击「开始」选项卡 →「分组依据」:- 分组列:选择你的协议编号列(比如“协议ID”)
- 新列名:输入「首笔支付日期」
- 操作:选择「最小值」
- 列:选择支付日期列
- 导出结果
点击「关闭并上载」,将处理好的结果加载回Excel,直接得到506个协议对应的首笔支付日期。
方法2:数据透视表快速实现
- 先筛选支付记录
选中原始数据的表头行,点击「数据」选项卡 →「筛选」,在活动类型列中只保留「支付」选项。 - 创建透视表
点击「插入」选项卡 →「数据透视表」,将协议编号拖到「行」区域,支付日期拖到「值」区域。 - 设置值字段为最小值
点击值区域的日期字段 →「值字段设置」,选择「最小值」,确认后透视表将直接显示每个协议的最早支付日期。
方法3:Excel 函数公式(适合快速验证)
- 提取唯一协议列表
在空白单元格输入公式:=UNIQUE(A:A)(A:A为你的协议编号列范围),生成506个唯一协议。 - 计算对应首笔支付日期
在相邻单元格输入公式:=MINIFS(B:B, A:A, D2, C:C, "支付")(B:B为日期列,A:A为协议列,D2为唯一协议单元格,C:C为活动类型列),下拉填充即可得到所有协议的最早支付日期。
内容的提问来源于stack exchange,提问作者yan peng
相关产品推荐
相关产品推荐

