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

基于两个条件返回最后单元格位置的Google Sheets公式求助

Google Sheets多条件获取最后匹配单元格列号问题

问题说明

需返回满足以下两个条件的最后一个单元格的列号:

  • 单元格值为"R";
  • 该单元格向右偏移3列的单元格值等于$F$2。

单个条件的有效公式(可正常运行):

=max(arrayformula(if(DATA!T5:5="R", COLUMN($3:$3), 0)))

添加第二个条件后,使用AND和OFFSET的公式返回错误的0值:

=max(arrayformula(if(AND(DATA!T5:5="R", OFFSET(DATA!T5:5,,3)=$F$2), COLUMN($3:$3), 0)))

错误原因

  1. AND不支持数组运算:在ARRAYFORMULA中使用AND时,它只会对整个数组做一次整体判断,无法逐单元格验证复合条件,导致所有单元格都不满足条件,最终返回0。
  2. OFFSET在数组环境下行为不稳定:作为易失性函数,OFFSET批量处理时无法正确对应每个单元格的偏移位置。

解决方法

用数组逻辑运算符*替代AND(表示逻辑与),同时用INDEX或直接列引用替换OFFSET实现偏移:

方法1:直接引用偏移后的列

若目标行是第5行,T列向右3列对应W列,公式可写为:

=MAX(ARRAYFORMULA(IF((DATA!T5:5="R")*(DATA!W5:5=$F$2), COLUMN(DATA!T5:5), 0)))

方法2:用INDEX动态偏移(无需硬编码列)

如果需要适配不同起始列,用INDEX动态获取偏移后的单元格值:

=MAX(ARRAYFORMULA(IF((DATA!T5:5="R")*(INDEX(DATA!5:5, COLUMN(DATA!T5:5)+3)=$F$2), COLUMN(DATA!T5:5), 0)))

两个公式都会逐单元格验证条件,返回所有满足条件的单元格列号中的最大值,即最后一个匹配单元格的列号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 09:33:16