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

如何在计算列中按生产者实现生产速率与天数乘积的累计求和?

按生产者分组计算累计生产总和的公式调整方案

问题背景

现有生产数据表格如下:

DateProducerProduction rate(unit per day)Number of Days
16/1/2023'A'131
16/1/2023'B'531
16/1/2023'C'1031
16/2/2023'A'228
16/2/2023'B'628
16/2/2023'C'1128
16/3/2023'A'331
16/3/2023'B'731
16/3/2023'C'1231

需求为:为每个生产者计算Production rate(unit per day)与Number of Days乘积的累计总和,最终期望表格如下:

DateProducerMonthly Production rate(unit per day)Number of DaysCumSum
16/1/2023'A'13131
16/1/2023'B'531155
16/1/2023'C'1031310
16/2/2023'A'22887
16/2/2023'B'628323
16/2/2023'C'1128618
16/3/2023'A'331180
16/3/2023'B'731540
16/3/2023'C'1231990

当前使用公式:Sum([Number of Days] * [Monthly Production rate(unit per day)]) OVER (AllPrevious([Date])),无法实现按Producer分组累计,需调整公式将Producer纳入计算逻辑。


解决方案

要实现按生产者分组累计,需在窗口函数中添加**分区(Partition By)**逻辑,指定按Producer分组,同时保留按Date的时间顺序累计。调整后的公式如下:

Sum([Number of Days] * [Monthly Production rate(unit per day)]) OVER (
    PARTITION BY [Producer]
    ORDER BY [Date]
    ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
)

公式说明:

  • PARTITION BY [Producer]:将数据按生产者分组,每个生产者单独计算累计值,互不干扰。
  • ORDER BY [Date]:确保每个生产者分组内的数据按日期顺序进行累计。
  • ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW:明确累计范围为当前分组的第一行到当前行,实现逐步累计的效果(部分工具中AllPrevious([Date])可替代此段,结合分区后同样生效)。

若你的工具支持AllPrevious语法,也可简化为:

Sum([Number of Days] * [Monthly Production rate(unit per day)]) OVER (
    PARTITION BY [Producer]
    AllPrevious([Date])
)

内容的提问来源于Stack Exchange,提问作者Amin Noor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 11:44:50