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

Google Sheets分组累计计数公式优化:寻求高效解决方案

Google Sheets高效分组累计计数方案探讨

我当前在Google Sheets中计算分组累计计数的公式如下:
=LAMBDA(a,INDEX(if(a="",,COUNTIFS(a,a,row(a),"<="&row(a)))))(B4:B)
该公式的时间复杂度为O(R²),1000行数据需执行100万次运算,效率较低。我尝试过LAMBDA与SCAN的组合,但仅能实现单个分组的快速累计计数:
=INDEX(IF(B4:B="🌽 Corn",SCAN(0,B4:B,LAMBDA(i,v,if(v="🌽 Corn",i+1,i))),))

请问如何实现多分组的高效累计计数?

注:脚本方案可通过对象与哈希表实现高效计算。

测试场景

总计N条数据,分为m个分组,分组项为可随机重复的唯一值。示例数据集:

a
b
b
b
a

上述示例共5条数据(N=5),2个分组(m=2),分组值为"a"和"b"。需适配以下高效计算场景:

  • 场景1:单个分组的出现次数≥1000次
  • 场景2:分组数量m≥1000个
  • 通用场景:总数据量N≈5万条以上

测试环境

含5万行数据的Google Sheets测试模板。

速度测试结果

已测试的解决方案包括:

  1. 问题中的COUNTIFS及相关COUNTIF方案
  2. XLOOKUP方案
  3. 复杂MATCH逻辑方案
  4. 🏆排序逻辑方案

测试结果显示,排序逻辑方案的速度优于其他所有方案,测试代码采用对应排序方案的实现逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:30:57