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

多保单数据筛选需求:如何获取每个邮箱地址对应的最新联系日期?

看来你需要从这份保单联系数据里,提取每个邮箱对应的最新联系记录对吧?我给你两种最常用的解决方案,分别适用于数据库和Excel场景:

方法一:使用SQL查询(数据库场景)

如果你的数据存储在数据库中,用窗口函数ROW_NUMBER()就能轻松实现需求。需要注意的是你的ContactDate格式是DD:MM:YYYY:HH:MI:SS,得先把它转换成数据库能识别的日期时间类型再排序。

示例SQL语句:

WITH ranked_records AS (
    SELECT 
        Policy,
        ContactDate,
        Email,
        Name,
        -- 按邮箱分组,将联系日期转成时间类型后倒序排名,最新的排第1
        ROW_NUMBER() OVER (
            PARTITION BY Email 
            ORDER BY STR_TO_DATE(ContactDate, '%d:%m:%Y:%H:%i:%S') DESC
        ) AS rn
    FROM your_table_name -- 替换成你的实际表名
)
-- 筛选出每个邮箱排名第1的记录(最新联系记录)
SELECT Policy, ContactDate, Email, Name
FROM ranked_records
WHERE rn = 1;

执行后得到的结果就是你预期的:

PolicyContactDateEmailName
POL217:02:2021:15:10:44JON@gmailJon
PO313:02:2021:09:41:00Pete@aolPete
POL414:02:2021:18:15:06Kate@yahooKate
方法二:使用Excel处理(本地表格场景)

如果你用Excel处理这份数据,可以通过数组公式或Power Query实现:

方式1:数组公式筛选

  1. 假设数据在A-D列(A=Policy,B=ContactDate,C=Email,D=Name),在E2单元格输入数组公式:
    =MAX(IF($C$2:$C$6=C2,$B$2:$B$6))
    输入完成后按Ctrl+Shift+Enter(Excel 365版本直接回车即可),然后下拉填充到E6。这列会计算每个邮箱对应的最新联系日期。
  2. 在F2单元格输入公式:=B2=E2,下拉填充。这列会标记当前行是否为该邮箱的最新记录。
  3. 筛选F列为TRUE的行,就能得到目标结果。

方式2:Power Query(更高效的批量处理)

  1. 选中数据区域,点击「数据」选项卡→「从表格/区域」(勾选「我的表格有标题」)。
  2. 在Power Query编辑器中,点击「转换」选项卡→「分组依据」:
    • 分组列选择Email
    • 新列名设为LatestContactDate,操作选「最大值」,列选ContactDate
  3. 关闭并上载分组后的表格,再和原表格通过Email+LatestContactDate做合并查询,筛选出匹配的记录即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 12:12:34