成员合并示例

Essbase 成员合并属性控制数据值的汇总方式,从层次结构中的子成员到父代。以下示例将大部分合并运算符用于大纲成员属性,包括 +(加)、-(减)、*(乘)、/(除)、%(百分比计算)和 ~(无合并)。

在这些示例中,假设最初尚未计算 Essbase 多维数据集,并且只有 0 级成员具有值。这些值已加载到多维数据集,但在计算之前,尚未将数据汇总到父代成员。

使用成员运算符的合并按自上而下的顺序进行。由于默认合并是加法,因此可以首先演示 (+) 运算符。

包含 (+) 运算符的示例

在下面的示例中,P1 在计算之前没有值。如果在计算多维数据集之前在电子表格中查询,其值将显示为 #MISSING。

P1
  M1 (+)  10
  M2 (+)  15
  M3 (+)  20

计算多维数据集后,P1 的值将为 45。合并将自上而下进行,如下所示:

P1 = P1+M1 = #MISSING+10 = 10
P1 = P1+M2 = 10+15 = 25
P1 = P1+M3 = 25+20 = 45

包含 (-) 运算符的示例

现在,考虑使用减法合并成员的类似层次结构。

P2
  M1 (-)  10
  M2 (-)  15
  M3 (-)  20

计算多维数据集后,P2 的值将为 -45。合并将自上而下进行,如下所示:

P2 = P2–M1 = #MISSING–10 = -10
P2 = P2-M2 = -10-15 = -25
P2 = P2-M3 = -25–20 = -45

包含 (*) 运算符的示例

考虑使用乘法合并成员的层次结构。

P3
  M1 (*)  10
  M2 (*)  15
  M3 (*)  20

计算多维数据集后,P3 的值将为 #MISSING。合并将自上而下进行,如下所示:

P3 = P3*M1 = #MISSING*10 = #MISSING
P3 = P3*M2 = #MISSING*15 = #MISSING
P3 = P3*M3 = #MISSING*20 = #MISSING

P3 的最终合并值可能不是预期的结果。如果要求 P3 成为所有子成员的乘积,请尝试对第一个子成员使用 (+) 运算符:

P3
  M1 (+)  10
  M2 (*)  15
  M3 (*)  20

将第一个运算符更改为加法后,计算多维数据集后,P3 将具有非 #MISSING 值。合并将自上而下进行,如下所示:

P3 = P3+M1 = #MISSING+10 = 10
P3 = P3*M2 = 10*15 = 150
P3 = P3*M3 = 150*20 = 3000

包含 (/) 运算符的示例

考虑使用分部(第一个子成员除外)合并成员的层次结构。

P4
  M1 (+)  10
  M2 (/)  15
  M3 (/)  20

计算多维数据集后,P4 的值将为 .033。合并将自上而下进行,如下所示:

P4 = P4+M1 = #MISSING+10 = 10
P4 = P4/M2 = 10/15 = 0.666
P4 = P4/M3 = 0.666/20 = 0.033

包含 (%) 运算符的示例

考虑使用百分比计算 ([a/b]*100) 进行合并的成员的层次结构,第一个子成员除外。

P5
  M1 (+)  10
  M2 (%)  15
  M3 (%)  20

计算多维数据集后,P5 的值将为 333。合并将自上而下进行,如下所示:

P5 = P5+M1 = #MISSING+10 = 10
P5 = (P5/M2)*100 = (10/15)*100 = 66.6
P5 = (P5/M3)*100 = (66.6/20)*100 = 333

具有多个运算符的示例

请考虑以下层次结构,该层次结构可与各种运算符合并。

Parent1
  Member1 (+)  10
  Member2 (+)  20
  Member3 (-)  25
  Member4 (*)  40
  Member5 (%)  50
  Member6 (/)  60
  Member7 (~)  70

Essbase 按如下方式计算 Member1 到 Member6:

Parent1 = Parent1+Member1 = #MISSING+10 = 10;
Parent1 = Parent1+Member2 = 10+20 = 30; 
Parent1 = Parent1+Member3 = 30-25 = 5;
Parent1 = Parent1+Member4 =  5*40 = 200;
Parent1 = Parent1+Member5 = (200/50)*100 = 400
Parent1 = Parent1+Member6 = 400/60 = 6.666;

由于 Member7 设置为“No Consolidation(~)”,因此 Essbase 会忽略合并中的 Member7。因此,Parent1 的最终值为 6.666。

另请参见 Use of the Calculation Operators *,/,and % 中的一些重要注意事项。

成员合并属性

为大纲成员定义 Essbase 合并属性时,将确定子成员如何汇总到其父代中。缺省情况下,为新成员指定加 (+) 运算符,即添加成员。

例如,添加“Jan(一月)”、“Feb(二月)”和“Mar(三月)”数字,并将结果存储在父代 Qtr1 中。

注意:

Essbase 不将合并属性与属性维的成员结合使用。请参阅计算属性数据

下面列出了成员合并属性。

表 5-2 合并运算符

运算符 说明

+

将成员添加到对分支中的先前成员执行的计算结果值中。+ 是默认运算符。

-

将成员乘以– 1,并将其添加到之前对其他成员执行的计算总和中。

*

将成员乘以之前对其他成员执行的计算的结果。

/

将成员划分为以前对其他成员执行的计算的结果。

%

将成员划分为以前对其他成员执行的计算总和。结果乘以 100 得到一个百分比值。

~

不将合并中的成员用于其父代。

^

在除属性维以外的任何维中,不使用任何合并中的成员。

要使用 Essbase Web 界面设置成员合并属性,请打开大纲进行编辑,选择成员并编辑其常规属性。根据需要更改运算符。有关更多信息,请参阅 Set General Properties

如果使用应用程序工作簿或 Cube Designer(多维数据集设计器)设置成员合并属性,请更新维工作表上的 CONSOLIDATION 属性。请参阅了解维工作表

如果使用 REST API 编辑大纲,则在执行成员添加或更新操作时,将 mbrInfoconsolidation 属性的值更新为支持的运算符之一,如运行批处理大纲编辑的端点中所述。

#MISSING 和零值的操作结果

如果成员的唯一组合不存在数据值,则 Essbase 将为组合提供值 #MISSING#MISSING 值不同于零 (0) 值。因此, Essbase#MISSING 值与 0 值区别对待。

下表显示了 Essbase 如何计算 #MISSING 值。在此表中,X 表示任何数字。

表 5-3 Essbase 如何计算缺少的值

计算/运算 结果

X + #MISSING

X

X – #MISSING

#MISSING – X

X

-X

X * #MISSING

#MISSING

X / #MISSING

#MISSING / X

X / 0

#MISSING

#MISSING

#MISSING

X % #MISSING

#MISSING % X

X % 0

#MISSING

#MISSING

#MISSING

X == #MISSING

False,除非 X 为 #MISSING

X != #MISSING

X <> #MISSING

正确,除非 X 为 #MISSING

正确,除非 X 为 #MISSING

(X <= #MISSING)

(X <=0)

(X >= #MISSING)

(X >=0) 或 (X == #MISSING)

(X > #MISSING)

(X > 0)

(X < #MISSING)

(X < 0)

X 和 #MISSING

1 AND #MISSING(1 表示任何非零值)

0 和 #MISSING

#MISSING#MISSING

#MISSING

0

#MISSING

X 或 #MISSING

1 OR #MISSING(1 表示任何非零值)

0 或 #MISSING

#MISSING#MISSING

1

#MISSING

#MISSING

IF (#MISSING)

IF (0)

f (#MISSING)

一个变量的任意 Essbase 函数的 #MISSING

f (X)

#MISSING 表示不在 f 域中的任何 X,以及多个变量的任何 Essbase 函数(除非特别注明)