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

Google Sheet 基于特定条件的动态运行计数/索引数组公式需求

动态数组公式实现特定值的运行计数(插入行无需手动调整)

刚看到你的需求——要做一个能自动适配插入行的运行计数数组公式,不用每次改范围对吧?刚好可以用Excel的动态数组功能来解决,完美适配你的场景。

假设你的目标数据在A列(A1是表头,数据从A2开始),要在B列生成仅匹配'C'的连续索引,直接用这个动态数组公式就行(Excel 365/2021及以上版本支持,回车直接生效,不用Ctrl+Shift+Enter):

=LET(
    data_range, A2:A,
    target_value, "C",
    match_check, data_range=target_value,
    running_index, SCAN(0, match_check, LAMBDA(current_count, is_match, IF(is_match, current_count+1, ""))),
    running_index
)

公式拆解说明:

  • data_range, A2:A:用开放式引用锁定要检查的列,插入新行时会自动纳入新数据,彻底告别手动调整范围的麻烦。
  • target_value, "C":这里是你要匹配的特定值,直接改成你实际需要的内容就行,也可以引用单元格(比如$E$1)来动态切换目标。
  • match_check, data_range=target_value:生成一个布尔数组,标记每一行是否匹配目标值。
  • running_index, SCAN(...):核心逻辑!SCAN会逐个遍历布尔数组,初始计数为0,遇到匹配的行就把计数+1,不匹配的行返回空值,完美生成你要的运行索引。

旧版Excel兼容方案(无动态数组支持)

如果你用的是旧版本Excel(不支持LET/LAMBDA),可以用这个数组公式(输入后必须按Ctrl+Shift+Enter确认):

=IF(A2:A="C", COUNTIF($A$2:A2, "C"), "")

不过这个版本插入新行后可能需要重新选中公式范围,按数组组合键刷新,不如动态数组版本省心。

使用小贴士:

  • 动态数组版本输入后会自动溢出到B列所有对应行,不用下拉填充。
  • 要匹配其他值?直接修改target_value后面的内容就行,灵活得很。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 09:12:37