成员合并示例
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 = #MISSINGP3 的最终合并值可能不是预期的结果。如果要求 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 (~) 70Essbase 按如下方式计算 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 编辑大纲,则在执行成员添加或更新操作时,将 mbrInfo 的 consolidation 属性的值更新为支持的运算符之一,如运行批处理大纲编辑的端点中所述。
#MISSING 和零值的操作结果
如果成员的唯一组合不存在数据值,则 Essbase 将为组合提供值 #MISSING。#MISSING 值不同于零 (0) 值。因此, Essbase 将 #MISSING 值与 0 值区别对待。
下表显示了 Essbase 如何计算 #MISSING 值。在此表中,X 表示任何数字。
表 5-3 Essbase 如何计算缺少的值
| 计算/运算 | 结果 |
|---|---|
|
X + |
X |
|
X –
|
X -X |
|
X * |
|
|
X /
X / 0 |
|
|
X %
X % 0 |
|
|
X == |
False,除非 X 为 |
|
X != X <> |
正确,除非 X 为 正确,除非 X 为 |
|
(X <= |
(X <=0) |
|
(X >= |
(X >=0) 或 (X == |
|
(X > |
(X > 0) |
|
(X < |
(X < 0) |
|
X 和 1 AND 0 和
|
0
|
|
X 或 1 OR 0 或
|
1
|
|
IF ( |
IF (0) |
|
f ( |
一个变量的任意 Essbase 函数的 |
|
f (X) |
|