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

Excel公式:使用公式查找倒数第二个日期(相对位置可变)

提取客户倒数第二个购买日期的Excel公式解决方案

我来帮你解决这个提取客户倒数第二个购买日期的问题,根据你的Excel版本,我整理了两种可行的方案,都能避开相对位置不固定的问题:

一、Excel 365/2021及以上版本(推荐,动态数组支持)

如果你的Excel是较新的版本,用LET+FILTER+SORT的组合公式会非常直观,而且不需要复杂的数组操作。假设去重后的客户列表在Sheet2的A列,要在相邻的B列输出结果,直接在Sheet2的B2单元格输入以下公式,下拉填充即可:

=LET(
    客户所有日期, FILTER(Sheet1!$A$2:$A$1000, Sheet1!$B$2:$B$1000=A2),
    IF(COUNTA(客户所有日期)>=2, INDEX(SORT(客户所有日期, 1, -1), 2), "无足够购买记录")
)

公式逻辑:

  1. FILTER:从Sheet1的购买日期列中,筛选出当前客户(A2单元格)的所有购买日期;
  2. COUNTA:检查该客户的购买记录数量,至少2条才继续;
  3. SORT(...,1,-1):把筛选出的日期按降序排列(最新的日期排在最前面);
  4. INDEX(...,2):取排序后的第2个值,也就是倒数第二个购买日期;
  5. 如果记录不足2条,返回自定义提示文本。

二、Excel 2019及更早版本(无动态数组支持)

对于旧版本Excel,需要使用数组公式来实现。同样假设去重客户在Sheet2的A列,在Sheet2的B2单元格输入以下公式,输入完成后**按Ctrl+Shift+Enter**触发数组计算,再下拉填充:

=IFERROR(MAX(IF(Sheet1!$B$2:$B$1000=A2, IF(Sheet1!$A$2:$A$1000<MAX(IF(Sheet1!$B$2:$B$1000=A2, Sheet1!$A$2:$A$1000)), Sheet1!$A$2:$A$1000))), "无足够购买记录")

公式逻辑:

  1. 最内层的MAX(IF(...)):先找到当前客户的最新购买日期;
  2. 中间的IF(Sheet1!$A:$A<最新日期,...):筛选出该客户所有早于最新日期的购买日期;
  3. 外层的MAX:从这些日期中取最大值,也就是倒数第二个购买日期;
  4. IFERROR:处理客户购买记录不足2条的情况,返回提示文本。

特殊场景补充:

如果你的数据中存在同一天多次购买的情况,并且你需要提取的是「倒数第二笔订单的日期」(而非按日期大小的倒数第二个),可以改用以下数组公式:

=IFERROR(INDEX(Sheet1!$A$2:$A$1000, LARGE(IF(Sheet1!$B$2:$B$1000=A2, ROW(Sheet1!$A$2:$A$1000)-ROW(Sheet1!$A$2)+1), 2)), "无足够购买记录")

这个公式通过行号来定位倒数第二笔订单,不管日期是否重复,完全按订单的先后顺序提取。

注意事项:

  • 把公式中的Sheet1!$A$2:$A$1000和Sheet1!$B$2:$B$1000替换成你实际的数据范围,尽量不要用整列引用(比如A:A),这样能提升公式计算效率;
  • 如果你的日期格式有问题,先确保Sheet1的A列是Excel可识别的日期格式,否则公式会失效。

内容的提问来源于stack exchange,提问作者Ing Angel Lopez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:49:13