删除不必要的顶级级别

allison_slaught
5月1日编辑 博客

删除不必要的顶级级别(或者最好一开始就不添加它们!)

作者:Allison Slaught, anplan的注册规划师和主要解决方案架构师。

AllisonSlaught_article.jpg

为了提高模型的效率,只在必要的地方进行计算是很重要的。我们可以做到这一点的一种方法是只在适当的地方使用顶层。

当我们经常引用这些值时,顶层非常有用。例如,如果我们希望定期查看所有产品的总收入或所有地点的总成本,那么产品和地点列表的Top Level是合适的。然而,对于像scenario这样的其他列表,我们不会经常引用所有列表成员的值,但偶尔我们会希望看到总数。为这些偶尔的计算包括一个Top Level是不必要的,我们可以用另一种技术来计算这些值,我喜欢称之为“只是一个破折号”技术——只是一个anplan的魔法。老土,没错,但奶酪有助于提高团队意识。

例如,为了帮助引导用户采取行动,你可能想要在所有场景中显示的一个问题是,有多少单位缺少价格?

1. png图像

为了在不添加Top Level的情况下提供这种上下文,让我们深入研究如何做到这一点。

首先,创建结构只是一个破折号具有一个列表成员的列表。

2. png图像

对于列表,我想要避免顶层,在各自的系统模块中,我创建了一个列表格式化的行项目,我硬编码到只是一个破折号一个名单成员:

3. png图像

结果在网格视图中看起来像这样:

4. png图像

当我想要在所有列表成员中查看一个值时,我将该值通过一个登台行进行登台,该登台行具有只是一个破折号像这样列出维度:

5. png图像

上面的公式对只是一个破折号映射。

最后,为了检索这个值,我使用了一个select语句。自只是一个破折号List是结构化的,在这里使用select语句是可以的。

6. png图像

如果您在模型中看到这些不必要的顶层,请知道这是模型评审中常见的反馈点,可以删除。下次你看到这样的消息时:

7. png图像

与其立即在列表中添加一个顶级关卡,不如让我们再考虑一下,并有意识地构建。

你有什么建议吗?留下评论吧!

评论

  • 这是其中之一啊哈!对于许多规划师(甚至是有经验的人)来说。你指出的错误,即使是最聪明的人,如果他们不知道这个方法,也会感到压力。我认为使用SUM而不是无辜的顶层的想法一开始似乎违反直觉,这就是为什么它不是默认的原因,但我喜欢你写的事实!

    这可能是出于懒惰,但我通常将其留在新的staging模块中的SUM(以避免子视图),并将其用于报告(而不是额外的SELECT)。对我来说,这似乎是在完成SUM部分之后的选择,但我想知道不创建单独的Staging模块并使用SELECT将Staging行减少到另一行是否有明确的优势。