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

求助:多条件下提取Excel数据集倒数第N个值的公式

满足多条件提取倒数第N个值的Excel公式

针对你需要提取B列匹配A1、I列为空的F列倒数第1、2、3个值的需求,以下是不同Excel版本的可用公式:

一、旧版Excel(非动态数组,如Excel 2019及更早)

这类版本需要使用数组公式,输入完成后需按 Ctrl+Shift+Enter 确认生效:

  • 提取倒数第1个值(最后一个符合条件的值):
    =INDEX(F:F,MAX(IF((B:B=A1)*(I:I=""),ROW(B:B))))

  • 提取倒数第2个值:
    =INDEX(F:F,LARGE(IF((B:B=A1)*(I:I=""),ROW(B:B)),2))

  • 提取倒数第3个值:
    =INDEX(F:F,LARGE(IF((B:B=A1)*(I:I=""),ROW(B:B)),3))

公式逻辑说明:

  • (B:B=A1)*(I:I=""):同时验证两个条件,符合条件的行返回1,否则返回0;
  • IF(...,ROW(B:B)):仅保留符合条件行的行号,不符合条件的返回FALSE;
  • LARGE(...,N):取符合条件行号中的第N大值(行号越大,数据越靠后,对应倒数第N个符合条件的记录);
  • INDEX(F:F,行号):根据行号提取F列对应位置的值。

你也可以基于原公式的SMALL思路调整,公式如下(同样需按组合键确认):
=INDEX(F:F,SMALL(IF((B:B=A1)*(I:I=""),ROW(B:B)),COUNTIFS(B:B,A1,I:I,"")-N+1))
将公式中的N替换为1、2、3,即可分别提取倒数第1、2、3个值。

二、Excel 365/2021(动态数组版本)

这类版本支持动态数组函数,公式更简洁,无需组合键确认,甚至可一次性提取多个值:

  • 提取倒数第1个值:
    =TAKE(FILTER(F:F,(B:B=A1)*(I:I="")),-1)

  • 提取倒数第2个值:
    =TAKE(FILTER(F:F,(B:B=A1)*(I:I="")),-2)

  • 提取倒数第3个值:
    =TAKE(FILTER(F:F,(B:B=A1)*(I:I="")),-3)

公式逻辑说明:

  • FILTER(F:F,(B:B=A1)*(I:I="")):先筛选出所有符合双条件的F列数据,保留原顺序;
  • TAKE(..., -N):直接截取筛选结果的最后N个值,若提取多个值,结果会自动溢出到下方单元格。

注意事项:

  • 建议使用实际数据范围(如B2:B1000)替代整列引用(B:B),减少公式计算量,提升运行效率;
  • 若I列的空值是由公式返回(如=""),I:I=""依然有效;若I列存在空格,需将条件改为TRIM(I:I)=""。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:13:16