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

按最新日期取值报错求助:提取每个PAIRDID最后标记Y的AUDIT DATE

嘿,我来帮你搞定这个Excel公式问题!你需要为每个PAIRDID提取最后一条标记为Y的PREFERRED对应的AUDIT DATE,对吧?我给你分两种场景提供解决方案,适配不同的Excel版本:

解决方案

1. 适用于Excel 365/2021(支持动态数组)

直接在F2单元格输入以下公式,按下回车后它会自动填充整个结果列,不用手动下拉:

=XLOOKUP(2,1/($A$2:$A$100=A2)/($C$2:$C$100="Y"),$B$2:$B$100,"",0,-1)

公式说明:

  • $A$2:$A$100=A2 匹配当前行的PAIRDID
  • $C$2:$C$100="Y" 筛选出PREFERRED标记为Y的记录
  • 1/() 会把符合双重条件的记录转为1,不符合的转为错误值
  • XLOOKUP的最后一个参数-1表示从后往前查找,所以会返回最后一条符合条件的AUDIT DATE
  • 把公式里的$A$2:$A$100、$B$2:$B$100、$C$2:$C$100替换成你实际的数据范围就行

2. 适用于旧版Excel(不支持动态数组)

在F2单元格输入以下公式,然后按 Ctrl+Shift+Enter 组合键结束(这是数组公式的输入方式),之后下拉填充到所有行:

=IFERROR(LOOKUP(2,1/(($A$2:$A$100=A2)*($C$2:$C$100="Y")),$B$2:$B$100),"")

如果你的Excel版本不支持IFERROR,可以换成:

=IF(MAX(IF(($A$2:$A$100=A2)*($C$2:$C$100="Y"),$B$2:$B$100))=0,"",MAX(IF(($A$2:$A$100=A2)*($C$2:$C$100="Y"),$B$2:$B$100)))

公式说明:

  • LOOKUP的逻辑和XLOOKUP类似,通过1/()筛选符合条件的记录,找最后一个匹配项
  • MAX函数则是直接取符合条件的所有日期里的最大值(也就是最新的日期),适合日期格式的字段
  • 外层的IF/IFERROR是为了处理没有符合条件记录的情况,返回空值而不是0或错误提示

额外注意:

  • 确保你的AUDIT DATE列(B列)是正确的日期格式,否则公式可能无法正确识别日期大小
  • 如果数据行数很多,记得调整公式里的行号范围,比如数据到200行就改成$A$2:$A$200

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:33:41