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

Google Sheets中匹配列特定值时获取目标列末值的公式优化

Google Sheets条件提取最后一条匹配值公式优化

需求说明

  • 业务逻辑:针对Blockchains工作表,以E列的值匹配目标值VALUEA,提取对应F列中符合匹配条件的最后一条数据
  • 当前在用公式:
=INDEX(filter(Blockchains!F$2:F,Blockchains!E$2:E=VALUEA),ROWS(filter(Blockchains!F$2:F,Blockchains!E$2:E=VALUEA)),1)
  • 现有公式问题:两次执行相同逻辑的FILTER运算,存在计算冗余,数据量较大时会降低表格计算效率,公式写法也偏冗长。

更优实现方案

方案1:LOOKUP写法(效率最高,全版本兼容)

=LOOKUP(1,0/(Blockchains!E$2:E=VALUEA),Blockchains!F$2:F)

逻辑说明:

  • 表达式0/(Blockchains!E$2:E=VALUEA)会将符合匹配条件的行转换为数值0,不符合条件的行转换为错误值
  • LOOKUP查找数值1时会自动忽略所有错误值,直接定位到最后一个符合条件的0值位置,返回对应F列的内容,全程仅做一次条件判断,计算量比原公式减少一半,万行以上数据场景下性能优势明显。

方案2:TAKE+FILTER写法(逻辑直观,适配新版Google Sheets)

=TAKE(FILTER(Blockchains!F$2:F,Blockchains!E$2:E=VALUEA),-1)

逻辑说明:

  • 和原公式思路一致,仅执行一次FILTER筛选出所有符合条件的F列值,再通过TAKE(..., -1)直接提取筛选结果的最后一行,写法比原公式简洁很多,也避免了重复计算。

补充说明

  • 若存在无匹配结果的场景,可以在外层套IFERROR做兜底处理,例如:
=IFERROR(LOOKUP(1,0/(Blockchains!E$2:E=VALUEA),Blockchains!F$2:F),"无匹配数据")
  • 不建议在数组公式中重复执行逻辑完全相同的筛选/判断运算,会不必要地占用表格计算资源。

内容的提问来源于stack exchange,提问作者Luis Miguel Delgado

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.04 16:18:27