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

Excel中连续1的累积计数公式需求:按连续序列累加计分

Excel 连续1的累积计数公式

规则回顾

  • 单个孤立的1,计1分(即1=1)
  • 连续k个1,计1+2+...+k = k*(k+1)/2分(如2个连续1得3,3个得6)
  • 总得分是所有连续1段的得分之和

方案1:适用于Excel 365/2021(动态数组版本)

假设数据在A2:E2,得分单元格输入以下公式:

=SUM(LET(r,A2:E2,len,REDUCE("",r,LAMBDA(a,b,IF(b=1,a&"1",IF(a<>"",a&"|","")))),spl,FILTER(TEXTSPLIT(len,"|"),TEXTSPLIT(len,"|")<>""),LEN(spl)*(LEN(spl)+1)/2))

公式逻辑

  1. REDUCE 将连续的1拼接成字符串,遇到0时用|分隔不同的连续段(如1,1,0,0,1会变成"11|1")
  2. TEXTSPLIT 按|分割字符串,得到每个连续1的子串
  3. LEN 获取每个子串的长度(即连续1的个数)
  4. 计算每个长度对应的三角数n*(n+1)/2,最后SUM求和得到总得分

方案2:适用于旧版Excel(兼容数组公式)

同样假设数据在A2:E2,输入以下公式后按Ctrl+Shift+Enter确认(数组公式):

=SUM(IF(FREQUENCY(IF(A2:E2=1,COLUMN(A2:E2)),IF(A2:E2=0,COLUMN(A2:E2))),FREQUENCY(IF(A2:E2=1,COLUMN(A2:E2)),IF(A2:E2=0,COLUMN(A2:E2)))*(FREQUENCY(IF(A2:E2=1,COLUMN(A2:E2)),IF(A2:E2=0,COLUMN(A2:E2)))+1)/2,0))

公式逻辑

  1. 用IF提取1和0所在的列号
  2. FREQUENCY 计算每个连续1段的长度
  3. 对每个长度计算三角数,最后SUM求和

示例验证

用你提供的表格测试:

Col 1Col 2Col 3Col 4Col 5公式计算结果预期得分
1000011
1000122
0110033
1100144
0111066

所有结果均符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 08:16:02