向合并单元格值分配值的方法

将值写回合并单元格的 Splasher 命令,以井号 (#) 为前缀。使用中,每个 Splasher 命令的名称将缩写单个字母,例如 C (复制) 或 L (类似)。

如果写入单元格的文本值以这些字母之一开始,或带有 # 符号,或包含 Splasher 命令的全名,则值可能会解析为 Splasher 命令。发生此情况时,单元格将显示 #REF!

如果要写入单元格的值始终是文本,且既不是日期也不是数字,可通过使用两个单引号作为前缀来避免这一问题。第一个单引号可避免使字符串解释为数字或日期或时间。第二个单引号可避免使字符串解释为 Splasher 命令。

例如,此问题只含单元格值,而不带单元格注释或特性等。此情况仅在启用散布时发生。

示例

此部分 CELLWRITE 公式旨在将值 C2019-20 写入单元格。
=CELLWRITE("C2019-20","DEPM","BPCCONFIG_CYCLE","...

但是,C 解析为 COPY 命令和 #REF!返回错误。

在开始的引号后加上两个单引号可指示分析程序该值不是 Splasher 命令,也不是数字或日期:

=CELLWRITE("''C2019-20","DEPM","BPCCONFIG_CYCLE","...

分配和改变

对于每种写回方法,用户均可指定值的分配或改变。

分配可替换现有值。例如,如果单元格包含 1,而使用“分配”写入 2,单元格的值则变成 2。

改变命令可通过输入值来修改现有值。例如,如果单元格包含 1,而使用“改变”输入 2,单元格的值则变成 3。

改变命令的前缀则为 & 号。

写回方法和命令

默认情况下,写回方法是累加型,即使用各种方式增加现有值。可更改每种写回方法的语法来减去值并按比例指定值。

本部分中有“加权”、“平均”、“底”和“类似”分配的语法示例,[value] 可采用减号 (-) 作为前缀以便写入负值。也可以之后追加百分号 (%) 以便按比例修改值。

例如:
语法 说明
&W20 将 20 加到单元格值
&W-20 从单元格值中减去 20
&W5% 单元格值增大 5%

加号 (+) 为隐式,但可令其成为显式(例如,&W+20)。每种写回方法都支持两种或三种语法。例如,#W[value]#@[value] 等效。包含特定维度和元素名称的示例均基于“示例”应用程序。

加权

当父级值增加或减少时,各自子级值的比例将保持不变。

加权分配:#W[value]

如果使用加权分配将值写入父级单元格,例如,将现有值增加一倍,则每个子级值也都增加一倍。

加权改变:&W[value]

如果使用加权改变将值写入父级单元格,例如,将现有值增加一倍,则每个子级值也都增加一倍并加到现有值上。

示例

父级单元格的值是 9,而其三个子级值均为 3。使用加权改变将 18 写入父级单元格。每个子单元格的值加倍,并加上现有值。因此,每个子级单元格的值变成 9。父级单元格的值变成 27。

平均

在父级单元格指定的值将平均分配给其子级。

平均分配:#E[value]

向父级单元格输入的值将替代现有值且在子级之间进行平均分配。

示例

父级单元格有三个子级。使用平均分配将 12 写入父级单元格。每个子级单元格的值变成 4。

平均改变:&E[value]

向父级单元格输入的值在子级单元格之间平均分配并且加到现有值上。

示例

父级单元格的值是 12。有三个子级单元格,而每个子级单元格的值都是 4。使用平均改变将 12 写入父级单元格。12 被平均分配给每个子级并且加到现有值上。因此,每个子级单元格的值变成 8。父级单元格的值变成 24。

写入父级单元格的值也被写入到每个子级单元格中。父级单元格的值已更新。

底分配:#B[value]

写入父级单元格的值也被写入到每个子级单元格中并替换现有值。

示例

父级单元格有三个子级。使用底分配将 2 写入父级单元格。因此,每个子级单元格的值变成 2。父级单元格的值变成 6。

底改变:&B[value]

写入父级单元格的值也被写入到每个子级单元格中并加到现有值上。

示例

父级单元格有三个子级。每个子级单元格的值都是 2。因此父级单元格的值是 6。使用底改变将 2 写入父级单元格。2 被写入每个子级单元格并且加到现有值上。每个子级单元格的值变成 4。父级单元格的值变成 12。

COPY

可将值从多维数据集的一个区域复制到另一个区域:例如,一个年份的实际数字复制到另一个年份的预算。在此例中,实际数字是源,而预算是目标。

在目标单元格中写入“Copy”命令。在此命令中,仅能够指定可将多维数据集的源区域与目标区域区分开的维度和元素。如果元素明确属于特定维度,则只需指定该元素。

复制 - 分配:#C[Tuple]

Copy - 改变:&C[元组]

元组是数据库特定区域的地址。在本例中,元组是要复制数据的地址。建议使用元素的唯一名称来指定元组。

从多维数据集的一个区域复制到另一个区域的值可替换现有值。
注意

当源和目标的元素都是合并 (C) 元素或基本 (N) 元素时,具有分配的 COPY 使用外部加权基本作为 OLAP 特定的写回方法。如果是 C 元素,下面的元素结构必须类似。也就是说,源和目标元素必须具有相同数量的子级项、孙级项等。在其他情况下,则使用“外部加权”方法。

具有改变的 COPY 使用外部加权增量作为写回方法。

示例

要将 2006 年第四季度的实际值复制到同一季度的预算中。选择包含该季度预算数字的单元格并指定:

#COPY [VALTYPE].[Variance].[Actual];[PERIOD].[All Years].[2006].[2006_Q4]

要将 2006 年德国第三季度的实际值复制到 2006 年法国第四季度的预算中。

选择包含法国第四季度预算的单元格并指定:

#COPY [REGION].[All Regions].[Europe].[Germany];[VALTYPE].[Variance].[Actual];[PERIOD].[All Years].[2006].[2006_Q3]

COPYFULL

COPYFULL 命令的运行方式与 COPY 相同,但还复制由规则计算出来的值。
注意

具有分配的 COPYFULL 将“外部加权”用作 OLAP 特定的写回方法。

具有改变的 COPYFULL 使用外部加权增量。

数据元素

Microsoft Analysis Services 支持数据元素。数据元素是父级元素的副本,但没有父级的状态。可写回数据成员,而不影响子元素。

示例

您有一个员工层次结构,其中经理是父级元素。如果正在计划经理工资,可将一个值写回“经理”数据元素,而不是“经理”元素。这样,其他员工的工资不会影响经理的工资,反之也不会受其影响。

类似

可采用与另一合并单元格的子级值相同的比例将值分摊到合并单元格的子级。

在目标单元格中写入类似命令。在此命令中,仅可指定可将数据库的源区域与目标区域区分开的维度和元素。如果元素明确属于特定维度,则不需只指定该元素。

在写回命令中,L 表示相似

类似 - 分配:#L[value][Tuple]

LIKE - 改变:&L[值][元组]

元组是数据库特定区域的地址。在本例中,元组是数据库源区域的地址。

示例

西班牙 2005 年第四季度的销售额数字是 60。各个月份的数字分别为十月是 10、十一月是 20、十二月是 30。

若要查看影响意大利 2006 年第一季度销量 600(如果采用与西班牙 2005 年第四季度销量的相同比例进行分配)的因素,可选择包含意大利第一季度销量的单元格,然后输入:

#L 600 [REGION].[All Regions].[Europe].[Spain];[PERIOD].[All Years].[2005].[2005_Q4]

意大利第一季度的销量变成 600。各个月份的数字分别为一月是 100、二月是 200、三月是 300。

#delete

若要从数据库的一个切片删除所有值,在包含写回公式(例如,WBC)的单元格中指定 #delete

LIKEFULL

LIKEFULL 结合了 LIKE 和 COPYFULL。即,可用来写回一个指定值,但使用“外部加权”作为写回模式。分配的语法为:

#LIKEFULL [value] [tuple]

对于改变,语法为:

&LIKEFULL [value] [tuple]。外部加权增量用作写回方法。