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

Excel中实现品牌变更重置、重现续算的累计求和公式

两种咖啡价格累计求和的实现方案

针对你提到的tblCoffee表格(记录咖啡品牌与价格),将原有的两种累计计数逻辑转换为求和逻辑的具体公式如下:


1. 品牌变更时重置累计求和(对应原D列计数逻辑)

原逻辑是品牌与上一行不同时重置计数序列,转换为求和后,需要累计当前连续同品牌行的价格,品牌切换时重新开始计算。使用SCAN函数实现:

=SCAN(0,
 HSTACK(tblCoffee[Price], tblCoffee[Brand]=DROP(VSTACK("",tblCoffee[Brand]),-1)),
 LAMBDA(acc, pair,
  IF(INDEX(pair,2), acc+INDEX(pair,1), INDEX(pair,1))
 )
)

逻辑说明:

  • DROP(VSTACK("",tblCoffee[Brand]),-1)生成与当前行品牌对比的"上一行品牌"数组,通过tblCoffee[Brand]=...得到布尔值数组(相同为TRUE,不同为FALSE)
  • SCAN遍历每一行的价格和品牌对比结果:
    • 若品牌与上一行相同(TRUE),则累加当前价格到累计值
    • 若品牌不同(FALSE),则重置累计值为当前价格

2. 品牌重现时续算累计求和(对应原G列计数逻辑)

原逻辑是统计每个品牌到当前行的出现次数,转换为求和后,需要计算当前品牌从第一行到当前行的所有价格总和,其他品牌不影响该品牌后续累加。使用MAP+SUMIFS实现:

=MAP(tblCoffee[Brand], tblCoffee[Price],
 LAMBDA(current_brand, current_price,
  SUMIFS(INDEX(tblCoffee[Price],1):current_price, INDEX(tblCoffee[Brand],1):current_brand, current_brand)
 )
)

逻辑说明:

  • MAP遍历每一行的品牌和价格
  • INDEX(tblCoffee[Price],1):current_price锁定求和范围为从第一行到当前行的价格列
  • SUMIFS筛选出该范围内品牌与当前行相同的所有价格,求和得到该品牌到当前行的累计总价

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 23:03:22