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

无需使用OFFSET函数计算连续出现次数的替代公式求助

替代OFFSET的非易失性公式

可以用INDEX()结合ROW()替代易失性的OFFSET(),实现完全相同的功能,公式如下:

=SCAN(0, A2:A13,
  LAMBDA(a, b,
    IF(INDEX(A:A, ROW(b)-1) = b,
      a + 1,
      1
    )
  )
)

公式说明:

  • INDEX(A:A, ROW(b)-1):通过当前单元格的行号ROW(b)减1,直接定位到上一行单元格,和OFFSET(b, -1, 0)效果完全一致,但INDEX()是非易失性函数,不会在工作表任意单元格变动时触发不必要的重新计算。
  • 对于区域第一个单元格(A2),ROW(b)-1指向A1,和原公式逻辑完全匹配:若A1等于A2,计数从初始值0加1得1;否则直接返回1,结果和原公式完全一致。

如果不需要考虑A1(仅计算目标区域内的连续次数),可调整为仅引用区域内的上一个元素,避免跨区域引用:

=SCAN(0, A2:A13,
  LAMBDA(a, b,
    LET(current_pos, ROW(b)-ROW(A2)+1,
        prev_val, IF(current_pos=1, "", INDEX(A2:A13, current_pos-1)),
        IF(prev_val = b, a+1, 1)
    )
  )
)

这个版本中,第一个元素的上一个值设为空字符串,确保首次计数始终为1,后续元素仅对比目标区域内的上一个值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 18:55:01