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

如何将Google Sheets中的指定公式转换为ArrayFormula?

递推计数公式的ArrayFormula转换方案

原公式=IF(E3=E2,F2,F2+1)的逻辑是:从第3行开始,对比当前行E列值与上一行E列值,若相同则继承上一行F列的计数,不同则计数+1。要转换成支持自动适配行增减的ArrayFormula,可借助SCAN函数实现递推逻辑,具体公式如下:

=ArrayFormula(
  IF(
    ROW(E:E)<=1, "",
    SCAN(
      1,
      E2:E,
      LAMBDA(acc, curr,
        IF(
          curr=INDEX(E:E, ROW(curr)-1),
          acc,
          acc+1
        )
      )
    )
  )
)

公式细节说明:

  • 跳过表头行:ROW(E:E)<=1 判断当前行是表头(第1行)时返回空值,避免干扰
  • 初始化计数:SCAN(1, E2:E, ...) 以1作为初始计数(对应原逻辑中F2的初始值),遍历E2及以下所有单元格
  • 递推判断逻辑:LAMBDA(acc, curr, ...) 里,acc代表上一行的计数结果,curr是当前行的E列值,通过INDEX(E:E, ROW(curr)-1)获取上一行E列值,对比后决定是否将计数+1
  • 自动适配行变化:公式会自动填充F列所有行,新增或删除行时无需手动调整公式

适配说明:

  • Google Sheets直接使用上述公式即可
  • Excel 365及以上版本可去掉外层ArrayFormula,使用=SCAN(1, E2:E, LAMBDA(acc, curr, IF(curr=INDEX(E:E, ROW(curr)-1), acc, acc+1)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 18:20:20