如何根据 excel 中的 non-cumulative 分类列动态创建累计总计
How to dynamically create a cumulative overall total based on a non-cumulative categorical column in excel
有点罗嗦的标题,但这里是
我在 excel 中有一个网格,其中包括 3 列(媒体支出、边际收入 returns 和投资的媒体渠道),我想在下面创建名为所需累积支出的列
之所以以这种方式构建网格,是因为它代表了一个优化的支出安排,按照每个媒体渠道的预算应该投资多少来排序,直到边际 returns 减少,这样它应该被另一个媒体渠道取代。
如果新渠道的曲线急剧递减,那么这种替代可能会逆转回原始渠道,这样与新渠道相关的所有边际收益都会减少,总支出水平仍然意味着它是切换回原始曲线在数学上是明智的(也许它的基础水平较低但减少幅度较小)。也有可能在与新渠道相关的边际收益减少时,最好的下一步是投资第三个渠道。
所需的新支出列有两个元素
- 当
时,它是逐行支出的简单累积
媒体通道在行与行之间保持不变
- 这是一个稍微棘手的支出积累,当媒体
频道更改 - 然后它需要能够引用回
与渠道关联的最后支出水平
代入。对于第 4 行,我正在努力解决的逻辑需要
到第 3 行的 运行 总数加上相关的新支出水平
第 4 行减去上次使用此渠道时的支出水平
(第 2 行)
|spend | mar return | media | desired cumulative spend |
|------ |----------- |-------| ----------------------------------------- |
1 | £580 | 128 | chan1 | 580 |
2 | £620 | 121 | chan1 | 580+(620-580) |
3 | £900 | 115.8 | chan2 | 580+(620-580)+900 |
4 | £660 | 115.1 | chan1 | 580+(620-580)+900+(660-620) |
5 | £920 | 114 | chan2 | 580+(620-580)+900+(660-620)+(920-900) |
6 | £940 | 112 | chan2 | 580+(620-580)+900+(660-620)+(920-900)+(940-920) |
如果我的评论是正确的建议,那么应该这样做(580 英镑在 A2,所以第一个输出是 D2):
D2 =A2
D3 =D2+A3-IF(COUNTIF($C:C2,C3),INDEX(A:A,MAX(IF($C:C2=C3,ROW($A:A2)))))
D3 contains an array formula and must be confirmed with ctrl+shift+enter.
现在你可以直接从D3复制下来了。
有点罗嗦的标题,但这里是
我在 excel 中有一个网格,其中包括 3 列(媒体支出、边际收入 returns 和投资的媒体渠道),我想在下面创建名为所需累积支出的列
之所以以这种方式构建网格,是因为它代表了一个优化的支出安排,按照每个媒体渠道的预算应该投资多少来排序,直到边际 returns 减少,这样它应该被另一个媒体渠道取代。
如果新渠道的曲线急剧递减,那么这种替代可能会逆转回原始渠道,这样与新渠道相关的所有边际收益都会减少,总支出水平仍然意味着它是切换回原始曲线在数学上是明智的(也许它的基础水平较低但减少幅度较小)。也有可能在与新渠道相关的边际收益减少时,最好的下一步是投资第三个渠道。
所需的新支出列有两个元素
- 当
时,它是逐行支出的简单累积 媒体通道在行与行之间保持不变 - 这是一个稍微棘手的支出积累,当媒体 频道更改 - 然后它需要能够引用回 与渠道关联的最后支出水平 代入。对于第 4 行,我正在努力解决的逻辑需要 到第 3 行的 运行 总数加上相关的新支出水平 第 4 行减去上次使用此渠道时的支出水平 (第 2 行)
|spend | mar return | media | desired cumulative spend |
|------ |----------- |-------| ----------------------------------------- |
1 | £580 | 128 | chan1 | 580 |
2 | £620 | 121 | chan1 | 580+(620-580) |
3 | £900 | 115.8 | chan2 | 580+(620-580)+900 |
4 | £660 | 115.1 | chan1 | 580+(620-580)+900+(660-620) |
5 | £920 | 114 | chan2 | 580+(620-580)+900+(660-620)+(920-900) |
6 | £940 | 112 | chan2 | 580+(620-580)+900+(660-620)+(920-900)+(940-920) |
如果我的评论是正确的建议,那么应该这样做(580 英镑在 A2,所以第一个输出是 D2):
D2 =A2
D3 =D2+A3-IF(COUNTIF($C:C2,C3),INDEX(A:A,MAX(IF($C:C2=C3,ROW($A:A2)))))
D3 contains an array formula and must be confirmed with ctrl+shift+enter.
现在你可以直接从D3复制下来了。