如何在Tableau的累计求和计算中将负值替换为0?
解决Running Sum负值替换为0的问题
你的计算字段逻辑有误,当前是判断单期销售总和是否为负,而非判断运行总和结果是否为负,所以得不到预期效果。
正确的计算字段公式
IF RUNNING_SUM(SUM([Sales])) < 0 THEN 0 ELSE RUNNING_SUM(SUM([Sales])) END
操作步骤
- 创建上述计算字段
- 保持表计算设置为"Across"(横向)
逻辑说明
原来的写法会在单期销售为负时直接返回0,打断了运行总和的累积逻辑。正确的逻辑是先计算完整的运行总和,再将结果中的负值替换为0,这样运行总和的累积是连续的,只是把最终为负的累积值转为0,匹配你想要的预期效果:
- 当前错误结果特征:单期销售负时显示0,后续累积未基于正确的前序总和计算
- 预期结果特征:运行总和持续累积,累积结果为负时显示0,后续基于非负的累积值继续计算
内容的提问来源于stack exchange,提问作者Radha
相关产品推荐
相关产品推荐

