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

如何在Google Sheets中检测连续三个零并生成指定提示?

解决方案:Google Sheets检测连续三个0并标记“stop”

场景说明

你需要在对应Trade的H列单元格中,当序列出现连续三个0时,在第三个0对应的位置标记“stop”,后续单元格留空(如Trade4触发连续三个0时,H列对应Trade4的位置写“stop”,Trade5及以后的H列单元格不填值)。


针对逐Trade标记的公式(推荐)

在H4单元格(对应第一个Trade的状态列)输入以下数组公式,按回车即可(新版Google Sheets支持自动数组扩展):

=SCAN("", I4:AB4, LAMBDA(prev_state, current_val, 
  IF(prev_state="stop", "", 
    IF(AND(current_val=0, 
           OFFSET(current_val, 0, -1)=0, 
           OFFSET(current_val, 0, -2)=0), 
       "stop", "")
  )
))

公式解释

  • SCAN:遍历I4到AB4的每个Trade值,累积记录上一个单元格的状态(prev_state)
  • 若上一个状态已经是stop,当前单元格直接留空
  • 若当前Trade值为0,且左侧相邻的两个Trade值也都是0,触发条件,当前单元格写stop
  • 其他情况留空

如果担心OFFSET在数组中的兼容性,可以改用INDEX定位:

=SCAN("", SEQUENCE(1, COLUMNS(I4:AB4)), LAMBDA(prev_state, idx, 
  IF(prev_state="stop", "", 
    IF(AND(INDEX(I4:AB4, idx)=0, 
           INDEX(I4:AB4, idx-1)=0, 
           INDEX(I4:AB4, idx-2)=0), 
       "stop", "")
  )
))

整行检测(只要存在连续三个0就标记该行H列)

如果需求是整行只要出现过连续三个0,该行H列统一显示“stop”,可以用以下公式:

=IF(MAX(SCAN(0, I4:AB4, LAMBDA(count, val, IF(val=0, count+1, 0))))>=3, "stop", "keep")

公式解释

  • SCAN:计算连续0的个数,遇到0就累加计数,遇到非0重置为0
  • MAX:取整行中最长的连续0个数,若≥3则显示stop,否则显示keep

原公式问题说明

你之前用的=IF(AND(ARRAYFORMULA(I4={J4:AB4})),"stop","keep")存在两个核心问题:

  1. AND会将数组结果转为单个布尔值,无法实现逐元素判断
  2. 逻辑仅比较I4与后续单元格是否相等,完全没有检测“连续三个0”的逻辑

内容的提问来源于stack exchange,提问作者Abdul-Aziz Muhammad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 21:50:33