如何在累计和为正值时停止SQL累计求和计算
实现带停止条件的累计求和功能
Excel 实现方法
假设你的AR列在A列,ADV列在B列,Net列从C2开始:
- 第一行(C2)输入公式:
=A2+B2 - 第二行(C3)输入公式:
=IF(C2>0,"",C2+A3+B3) - 选中C3单元格,下拉填充至所有行。公式会自动判断:如果前一行累计结果为正,当前及后续行就留空,否则继续累加。
Python Pandas 实现方法
如果用代码处理数据集,以下是基于pandas的实现逻辑:
import pandas as pd # 替换成你的实际数据集 df = pd.DataFrame({ 'AR': [-100, -50, 30, -20, 150], 'ADV': [50, 20, 40, 60, -10] }) # 计算每行的AR+ADV基础值 df['Net'] = df['AR'] + df['ADV'] cumulative = 0 stop_flag = False for idx, val in enumerate(df['Net']): if not stop_flag: cumulative += val if cumulative > 0: stop_flag = True df.loc[idx, 'Net'] = cumulative # 后续行全部设为空 df.loc[idx+1:, 'Net'] = None else: df.loc[idx, 'Net'] = cumulative else: df.loc[idx, 'Net'] = None print(df)
这段代码会先计算每行的初始和,然后逐行累加,一旦累计值变为正数,就停止后续所有行的计算并设为空值。
内容的提问来源于stack exchange,提问作者Satria Setya Arissandy
相关产品推荐
相关产品推荐

