CELLGET
此函数根据指定的元素返回多维数据集的值。该函数只能用于 ODBO 和 XMLA 兼容的数据库。与 ROC 公式类似,但它是动态的。也就是说,不必指定维度的所有元素。默认元素用于未指定的维度。
此动态与报告模板特别相关。例如,模板的设计者可以指定用户必须选择包含度量的维度或包含时间期间的维度。但是设计者无法知道用户可用的实际维度,或者用户将选择的维度。因此,模板设计者插入的任何公式都不得引用特定的维度、层次结构或元素。CELLGET 公式的每个参数都可以由变量提供。
指定维度的顺序并不重要。可引用 CELLGET 公式中的一个单元格范围,而不是逐个引用每一个单元格。
CELLGET 支持从单个维度中选择多个元素。
语法
=CELLGET("data_connection", "cube"{,"slice_element"})
示例
=CELLGET( "BestPracticesOLAP", "Analysis", "[Period].[All Years].[2017]",
"[Product].[Car Tires All Season]")
可使用 CELLGET 逐个引用多个维度的元素或作为范围引用。因此,如果单元格 B4、B5、B6 和 B7 都包含元素名称,则这两个示例会产生相同的结果:
=CELLGET("BestPracticesOLAP", "Analysis",B4,B5,B6,B7)
=CELLGET("BestPracticesOLAP","Analysis",B4:B7)
更改包含 CELL.GET 公式的单元格的值时,该值将写回数据库。
CELLGET 公式可用于引用超级数据块中的单元格。
多选
CELLGET 支持多选。可通过引用有效的多选 XML (MLS-XML) 来替换 CELLGET 公式中的任何元素。可引用包含 MLS-XML 的单元格或变量。
在此示例中,元素 2016 和 2017 在报告变量中存储为 MLS-XML:
=CELLGET("BestPracticesOLAP","ANALYSIS","[CHANNEL].[All Channels]","[MEASURE].[Gross Margin]",
"[POS].[All POS]","[PRODUCT].[All Tires]","[REGION].[All Regions].[Europe]",
ReportVariables.rv_multi.Text,"[VALTYPE].[Variance]")
还可使用范围指定维度的多个元素:
在此示例中,在一个范围中指定元素 2016 和 2017。
=CELLGET("BestPracticesOLAP","ANALYSIS","[CHANNEL].[All Channels]","[MEASURE].[Gross Margin]"
,"[POS].[all pos]","[Product].[all tires]","[region].[all regions].[europe]",
"[Period].[all years].[2016]::[period].[all years].[2017]","[valtype].[variance]")
该函数返回单个元素值的总和。