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

Excel中如何让LOOKUP公式返回匹配的最后一个非空值?(禁用VBA及数组公式)

解决LOOKUP无法忽略空单元格获取最后匹配非空值的问题

原公式=LOOKUP(2,1/($D$7:$M$7=$A9),$D8:$M8)无法忽略空单元格,是因为它仅匹配了标题行的条件,没有排除对应数据行的空值。可以通过给条件叠加非空判断来解决,无需VBA或数组公式:

=LOOKUP(2,1/(($D$7:$M$7=$A9)*($D8:$M8<>"")),$D8:$M8)

公式逻辑说明

  • ($D$7:$M$7=$A9):筛选出标题行中与$A9匹配的列位置
  • *($D8:$M8<>""):叠加筛选出对应数据行中不为空的单元格
  • 1/(...):将同时满足两个条件的位置转为1,不满足的转为错误值,LOOKUP会自动忽略错误值,定位到最后一个有效1对应的单元格值,也就是最后一个匹配且非空的结果

这个公式直接回车即可生效,不需要数组输入,针对你提到的Red的场景,第二个公式会返回5-Jun,第三个公式返回12 Jan,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:42:40