累计总和,移动总计,滚动总计,累计总和……是的,我们有很多种方式来称呼这种计算:计算某个时间段或维度上的一系列数字的总和。
不管叫什么名字,它总是让我们很头疼:当你要进行某种总和计算时,你好像有很多种计算方法,但似乎永远无法满足你的定制需求。这个计算在商业智能软件中非常频繁的出现,以至于我们可以看到“如何在XX中的计算滚动/累计总计?”
因此,我想写一篇关于在 SAP 分析云中计算“累计和”的不同方法的“累计”博客。
- 如果它帮助您获得想要的“累计金额”,请给它一个赞!
- 如果你还是无法得到你的“和”,请在评论中描述你的问题,让我们一起来看看吧!
- 如果你有其他计算“累计和”的绝妙方法,请在评论中分享,我会持续更新博客!
让我们开始吧!
基本上,SAP 分析云中,有两种方法可以将累积计算添加到您的故事中:
- 在故事Story 中创建实时计算
- 在建模器Modeler中创建计算,然后在您的故事中使用它
根据您想添加计算的位置和您使用的模型类型,我们下面分类列出您的多种选择:
除非另有说明,否则以下所有操作均在优化的故事体验模式下执行。阅读此博客以了解更多信息。
1.故事层面
1.1 从图表创建累积和
- 您有一个导入的模型并使用 DATE 类型维度作为时间维度
- 或者你有一个具有“扩展时间维度”的 Live Hana 模型
- 你想计算跨时间的累计总和,例如 YOY、YTD、PY等
如果是这种情况,您可以单击该度量并使用“添加时间计算”作为快捷方式来创建与时间相关的累计和并直接在图表上显示。
这相当于使用每个度量(帐户)的“添加计算”功能在生成器面板中手动创建这个与时间相关的累计和。
1.2 从计算或表中创建累积和
添加跨时间累计计算最方便的方法是使用与度量关联的“添加计算”功能。但是,根据您使用的模型类型,存在一些限制。
1.2.1导入模型:添加计算⇒受限账户,与以下项的差
- 你有一个导入模型
- 你使用了一个DATE类型的维度作为时间维度来计算跨时间累计和
在这种情况下,只需单击帐户的三个点并使用添加计算来添加 YOY、YTD 和 PY 计算。
今年迄今为止:YTD
上一年:PY
YOY:
1.2.2导入模型:Resultlookup函数
- 你有一个导入模型
- 您希望首先聚合一个维度的度量(例如,获取三年内每季度售出的数量),然后计算滚动总计。
这种情况下,我们会使用“添加计算”功能中的计算账户来完成一系列的计算来实现它。需要一些手动工作。我们将以这个“每季度销售的 3 年总数量的滚动总计”为例。
第 1 步:首先,我们需要总结三年内每季度销售的所有数量。我们首先创建了一个基于日期维度的计算维度:
然后使用“RESULTLOOKUP”函数计算每个季度的总和:
第 2 步:使用 If 语句创建计算账户以计算滚动总计
1.2.3 导入或实时 Hana 模型:添加计算⇒滚动总计
- 你有一个导入模型
- 或者你有一个 Live Hana 模型
- 你使用了一个DATE类型的维度作为时间维度来计算跨时间累计和
- 或者您使用 NON-DATE 维度来计算跨时间或者产品的累计和/平均值/计数等
从 2023.01 开始,我们引入了一种名为“滚动总计”的新型功能。此计算允许您创建总计 SUM、COUNT、MIN/MAX 和 AVERAGE。但是请注意,无论使用日期维度还是非日期维度,跨时间计算都不会从新的一年重新开始。滚动总计完全取决于计算中使用的维度和表中显示的数据。
1.2.4 包含“扩展时间维度”的Live Hana模型:添加计算
- 你有一个 Hana Live 模型
- 创建实时模型时,您开启了SAP 分析云模型中基于HANA View字符串的时间维度或日期维度,即扩展时间维度
如果您开启了 HANA View视图中基于字符串的时间维度或日期维度,则可以在SAC中使用与时间相关的功能来计算 YOY、PY 和 YTD。请阅读有关如何维护时间维度的帮助:
1.2.5 导入、Live BW、Live Hana 模型:从列添加计算
- 你有一个导入模型
- 或 BW Live 模型
- 或 HANA LIVE 模型
- 您使用了日期维度或非日期维度来计算累计总和
在这种情况下,您可以使用目标度量列中的“添加计算”来实现多种类型的累加计算。但是请注意,无论您使用日期维度还是非日期维度,跨时间计算都不会从新的一年重新开始。
1.2.6 BW 实时模型:有点挑战
- 你有一个 BW Live 模型
- 你想计算跨时间累计和
不幸的是,故事中的 BW 实时模型不支持与时间相关的计算。我们建议直接在 BW 中创建计算并令 SAC 来使用这个计算。阅读更多:
2.模型层面
2.1导入模型:模型中的LOOKUP函数
- 你有一个导入的模型
- 你有一个日期维度,想计算跨时间累计和
建模器中的公式可以为用户提供进行复杂计算的广泛能力。借助“LOOKUP”功能,可以轻松计算出“上一年/X月/X日”。配合“First、Last、Previous、Next、Current”等动态时间导航功能,可以实现自定义时间窗口的累加。
下面显示了使用 LOOKUP 计算前 12 个月的滚动总计的示例。
2.2导入模型:模型中的YOY函数
- 你有一个导入的模型
- 你有一个日期维度,想计算 YOY
YOY 是一个经常使用的函数,SAP 分析云提供了便捷的YOY 函数,您直接在建模器的公式中使用YOY函数,在一秒内生成YOY结果。
2.3导入模型:模型中的ITERATE函数
- 你有一个导入的模型
- 您有日期或非日期维度
- 您想计算滚动计算,例如滚动总和,滚动增长等
SAP 分析云 最近发布了建模器中的新公式公式 ITERATE。它旨在创建滚动计算。借助 Prior 函数,您还可以检索为前一个成员计算的值。
在此示例中,我们有一个日期维度,我们使用 ITERATE 来计算 AMOUNT 度量的滚动总和,它以年为单位进行拆分。我们还将此 ITERATE 函数与反向公式结合使用,从而允许在计划过程中进行反向填充。ITERATE 可以在没有 INVERSE 函数的情况下使用。
如果您想使用非日期维度来计算滚动总和,例如所有国家/地区的滚动总和,也可以使用 ITERATE 来实现。
2.4 Live Hana或者BW 模型:有点挑战
- 你有一个 Live Hana或者BW 模型
- 您想在建模器中创建累积度量
遗憾的是,动态时间导航功能(上一期、当前等)、YOY 功能和 ITERATE 功能不适用于 Live Hana 和 BW 模型。我们建议在 Hana 或 BW 中,而不是SAC中创建这些计算密集型 KPI,并使用 SAC 来简单地使用它们。
结论:
到目前为止,我们已经总结了几种在 故事Story 和 建模器Modeler 中创建累积计算的方法。
您在 SAP 分析云中创建累积计算的方式是什么?在评论中分享你的秘密武器,我会将内容更新至文章。
未来阅读:
高级公式——它们是如何工作的: https ://blogs.sap.com/2021/05/03/advanced-formulas-how-they-work/