求Excel公式:基于Y/N指示器实现列值累计求和及重置
Excel累计求和并在指定条件下重置的公式实现
需求说明:B列(累计采样体积)需对A列的采样体积值进行累计求和,当C列的指示器标记为Y时,下一行的累计值重置为当前A列的采样体积,不再延续之前的累计。示例效果如下:
| 采样体积 | 累计采样体积 | 本次采样后重置累计? |
|---|---|---|
| 244 | 244 | N |
| 183 | 427 | N |
| 181 | 608 | N |
| 182 | 790 | N |
| 191 | 981 | Y |
| 250 | 250 | N |
| 403 | 653 | N |
| 402 | 1055 | N |
| 431 | 1486 | N |
| 320 | 1806 | N |
| 590 | 2396 | Y |
| 830 | 830 | N |
公式方案
方案1:兼容旧版Excel(需手动下拉填充)
在B2单元格输入以下公式,然后下拉填充至所有目标行:
=IF(ROW()=2,A2,IF(C1="Y",A2,B1+A2))
逻辑说明:
- 第一行(B2)直接取A2的采样体积作为初始累计值
- 从第二行开始,检查上一行的C列值:如果是Y,则当前累计值重置为当前A列的采样体积;否则用上一行的累计值加上当前A列的采样体积
方案2:Excel 365/2021动态数组公式(自动填充整列)
在B2单元格输入以下公式,按回车后自动填充整列:
=SCAN(0,A2:A13,LAMBDA(acc,val,IF(ROW(A2:A13)=ROW(A2),val,IF(INDEX(C:C,ROW(A2:A13)-1)="Y",val,acc+val))))
逻辑说明:
- 用
SCAN函数遍历A列数据,LAMBDA定义累计规则:遇到上一行C列为Y时,重置累计值为当前A列值;否则持续累加
内容的提问来源于stack exchange,提问作者ETP
相关产品推荐
相关产品推荐

