跳至主要内容
Adaptive Planning
上次更新时间 :2024-12-13
概念:多维工作表计算的计算结果必须为零

概念:多维工作表计算的计算结果必须为零

此警告表示多维计算在工作表视图中显示为错误。 这些错误可确保多维工作表继续运行。

求值为零有何帮助

您可以将多维工作表想象成一张晚餐表,将单元格想象成餐桌上的多个席位。提供者在有餐盘的座位上提供食物。同样,当公式引用空单元格时,多维工作表不会执行计算。相反,多维工作表的计算结果为零或不提供食物。
当引用的账户位于同一个多维工作表中时,此系统可以正常工作。但是,当引用的账户不在同一多维工作表中时,多维工作表不知道何时计算结果为零。
这就像在晚餐时蒙住东道主的眼睛一样。如果寄主必须在不知道餐盘所在位置的情况下提供食物,则寄主会浪费食物和能源。同样,如果多维工作表必须搜索每个交集才能知道何时计算结果为零,则会降低工作表的性能。
相反,提供者拒绝提供服务;同样,多维工作表会拒绝计算,而是返回错误。

同一多维工作表中的计算

此示例展示了当您在同一工作表中引用账户时,多维工作表中的计算如何工作。
  • ACCT.CubeCalc 和 ACCT.Cube_001 位于同一多维工作表中。
  • ACCT.Cube_001 是数据输入账户。
  • ACCT.CubeCalc 具有引用多维账户的公式:ACCT.Cube_001 * 5。
Account
1 月
2 月
ACCT.Cube_001
5
ACCT.CubeCalc
25
0
由于 ACCT.Cube_001 没有 2 月份的数据,因此多维计算的计算结果为 0。

包含多维外部引用的计算

此示例展示了当您引用多维工作表外部的账户时,多维计算的工作原理。
  • ACCT.CubeCalc 引用 ACCT.002,这是多维工作表外部的总分类账。
  • ACCT.CubeCalc 具有引用总分类账的公式:
    div (ACCT.002, 2)
当您在
“建模”
中保存多维计算型账户时,您会收到以下错误消息:
“多维计算公式的计算结果必须为零”
。该错误不会阻止您保存工作表。但是,您会在工作表的单元格中看到错误:
Account
1 月
2 月
ACCT.CubeCalc
错误
错误
多维计算不知道在 1 月或 2 月是否有 ACCT.002 的板块,因为该账户不在多维工作表上。多维工作表不会在每个可能的座位上提供食物,也不会搜索每个可能的交叉点,而是会根本拒绝提供食物,这意味着它将返回一个错误。

在多维工作表中触发账户

要解决此错误,您可以执行以下操作:
  • 引用另一个多维账户作为触发器账户,并向公式添加
    isblank
    条件。您必须使用
    ACCT.account_code
    语法,并将
    account_code
    替换为模型中的有效账户代码。您不能使用
    account.this
  • 将总分类账账户或自定义账户作为添加到多维工作表的账户添加到多维工作表中。 请参见 将总分类账账户和自定义账户添加到多维工作表
  • 创建已合并多维工作表,这样就无需使用触发器账户。请参见 概念:已合并多维工作表
触发器可以是同一多维工作表中的任何账户,但多维指标账户除外。触发器会告知多维计算,预期餐牌在牌桌上的位置。要消除 ACCT,CubeCalc 公式的错误,请按以下方式更新公式:
  • 旧公式:div (ACCT.002, 2)
  • 新公式:if (isblank (ACCT.Cube_Trigger), 0, div (ACCT.002, 2))
新公式表示:如果触发账户
为 Blank
,则返回 0。否则,将总分类账账户除以 2。现在,您需要从工作表中移除这些错误。仅当触发器中存在车牌时,即使总分类账中存在数据,此计算才有效:
Account
1 月
2 月
ACCT.CubeCalc
3500
0
ACCT.Cube_Trigger
1
在您为触发器添加数据到 2 月后,计算将在总分类账中查找数据并针对 2 月进行计算。

多维触发器账户的限制

多维指标账户不能用作触发器。多维指标会在多维工作表内每个可能的交集处进行计算。除了在所有可能的叶交集处进行计算之外,它们还会在每个可能的父级交集排列处进行计算。
即使只有少数来宾参与,多维指标也会强制东道主提供大量晚餐。当多维指标招待 10 位客人时,它会提供 10,000 盘食物。
因此,将指标用作触发器会对多维工作表造成不必要的负担。
通常,触发器可能会给系统带来压力。请注意,不要将触发器添加到当前未使用的交集。
高效触发器仅创建必要的交集。示例:使用 Planning 数据源为特定维度值加载触发器。或者使用历史组合来指示将来值。