十、多维数据集函数1、CUBEKPIMEMBER返回重要性能指示器(KPI) 属性,并在单元格中显示KPI 名称。
KPI 是一种用于监控单位绩效的可计量度量值,如每月总利润或季度员工调整。
注释只有在工作簿连接到Microsoft SQL Server 2005 Analysis Services 或更高版本的数据源时才支持CUBEKPIMEMBER 函数。
语法CUBEKPIMEMBER(connection,kpi_name,kpi_property,caption)Connection是到多维数据集的连接的名称的文本字符串。
Kpi_name是多维数据集中KPI 名称的文本字符串。
Kpi_property是返回的KPI 组件,可以是下列类型的值之一:整型枚举常量说明1 KPIValue 实际值2 KPIGoal 目标值3 KPIStatus KPI 在特定时刻的状态4 KPITrend 走向值的度量5 KPIWeight 分配给KPI 的相对权重6 KPICurrentTimeMember KPI 的临时根据内容如果您为kpi_property 指定KPIValue,则只有kpi_name 显示在单元格中。
Caption是显示在单元格中的可选文本字符串,而不是kpi_name 和kpi_property。
注解当CUBEKPIMEMBER 函数求值时,它会在检索到所有数据之前在单元格中暂时显示“#GETTING_DATA…”消息。
要在计算中使用KPI,请将CUBEKPIMEMBER 函数指定为CUBEVALUE 函数中的member_expression 参数。
如果连接名称不是存储在工作簿中的有效工作簿连接,则CUBEKPIMEMBER 函数将返回错误值#NAME?。
如果联机分析处理(OLAP) 服务器未运行、不可用或返回错误消息,则CUBEKPIMEMBER 函数返回错误值#NAME?。
当kpi_name 或kpi_property 无效时,CUBEKPIMEMBER 返回错误值#N/A。
CUBEKPIMEMBER 在以下情况下可能返回错误值#N/A:如果您在共享连接时引用数据透视表中的基于会话的对象,如计算成员或命名集,并且该数据透视表被删除了或者您将该数据透视表转换为公式(方法是:在“选项”选项卡上的“工具”组中,单击“OLAP 工具”,然后单击“转换为公式”)。
示例=CUBEKPIMEMBER("Sales","MySalesKPI",1)=CUBEKPIMEMBER("Sales","MySalesKPI", KPIGoal,"Sales KPI Goal")2、CUBEMEMBER返回多维数据集中的成员或元组。
用来验证成员或元组存在于多维数据集中。
语法CUBEMEMBER(connection,member_expression,caption)Connection是到多维数据集的连接的名称的文本字符串。
Member_expression是多维表达式(MDX) 的文本字符串,用来计算出多维数据集中的唯一成员。
此外,也可以将member_expression 指定为单元格区域或数组常量的元组。
Caption是显示在多维数据集的单元格(而不是标题)中的文本字符串(如果定义了一个文本字符串的话)。
当返回元组时,所用的标题为元组中最后一个成员的文本字符串。
注解当CUBEMEMBER 函数求值时,它会在检索到所有数据之前在单元格中暂时显示“#GETTING_DATA…”消息。
如果将CUBEMEMBER 函数用作另一个CUBE 函数的参数,该CUBE 函数将使用标识成员或元组的MDX 表达式,而不是在CUBEMEMBER 函数的单元格中显示的值。
如果连接名称不是存储在工作簿中的有效工作簿连接,则CUBEMEMBER 函数返回错误值#NAME?。
如果联机分析处理(OLAP) 服务器未运行、不可用或返回错误消息,则CUBEMEMBER 函数返回错误值#NAME?。
如果元组中至少有一个元素是无效的,则CUBEMEMBER 函数返回错误值#VALUE!。
如果member_expression 的长度大于255 个字符(这是函数中参数的长度限制),则CUBEMEMBER 函数将返回错误值#VALUE!。
要使用长度大于255 个字符的文本字符串,请在单元格中输入该文本字符串(对于单元格而言,该限制是32,767 个字符),然后使用单元格引用作为参数。
当遇到下列情况时,CUBEMEMBER 函数返回错误值#N/A:member_expression 语法不正确。
MDX 文本字符串指定的成员在多维数据集中不存在。
由于指定的值不交叉,元组无效。
(当多个元素来自同一层次结构时会发生此情况。
)集合至少包含一个其维数与其他成员都不同的成员。
CUBEMEMBER 在以下情况下可能返回错误值#N/A:如果您在共享连接时引用数据透视表中的基于会话的对象,如计算成员或命名集,并且该数据透视表被删除了或者您将该数据透视表转换为公式(方法是:在“选项”选项卡上的“工具”组中,单击“OLAP 工具”,然后单击“转换为公式”)。
示例=CUBEMEMBER("Sales","[Time].[Fiscal].[2004]")=CUBEMEMBER($A$1,D$12)=CUBEMEMBER("Sales",(B4, C6, D5),"SalesFor2004")=CUBEMEMBER("xlextdat8 FoodMart 2000 Sales","([Product].[Food],[Time].[1997])")=CUBEMEMBER($A$1,C$12:D$12)3、CUBEMEMBERPROPERTY返回多维数据集中成员属性的值。
用来验证某成员名称存在于多维数据集中,并返回此成员的指定属性。
语法CUBEMEMBERPROPERTY(connection,member_expression,property)Connection是到多维数据集的连接的名称的文本字符串。
Member_expression是多维数据集中成员的多维表达式(MDX) 的文本字符串。
Property是返回的属性的名称的文本字符串或对包含属性名称的单元格的引用。
注解当CUBEMEMBERPROPERTY 函数求值时,它会在检索到所有数据之前在单元格中暂时显示“#GETTING_DATA…”消息。
如果连接名称不是存储在工作簿中的有效工作簿连接,则CUBEMEMBERPROPERTY 函数返回错误值#NAME?。
如果联机分析处理(OLAP) 服务器未运行、不可用或返回错误消息,则CUBEMEMBERPROPERTY 函数返回错误值#NAME?。
如果member_expression 语法不正确,或者member_expression 指定的成员在多维数据集中不存在,则CUBEMEMBERPROPERTY 函数返回错误值#N/A。
CUBEMEMBERPROPERTY 在以下情况下可能返回错误值#N/A:如果您在共享连接时引用数据透视表中的基于会话的对象,如计算成员或命名集,并且该数据透视表被删除了或者您将该数据透视表转换为公式(方法是:在“选项”选项卡上的“工具”组中,单击“OLAP 工具”,然后单击“转换为公式”)。
示例=CUBEMEMBERPROPERTY("Sales","[Time].[Fiscal].[2004]",$A$3)=CUBEMEMBERPROPERTY("Sales","[Store].[MyFavoriteStore]","[Store].[Store Name].[Store Sqft]")4、CUBERANKEDMEMBER返回集合中的第n 个成员或排名成员。
用来返回集合中的一个或多个元素,如业绩最好的销售人员或前10 名的学生。
语法CUBERANKEDMEMBER(connection,set_expression,rank,caption)Connection是到多维数据集的连接的名称的文本字符串。
Set_expression是集合表达式的文本字符串,如"{[Item1].children}"。
Set_expression 也可以是CUBESET 函数,或者是对包含CUBESET 函数的单元格的引用。
Rank是用于指定要返回的最高值的整型值。
如果rank 为1,它将返回最高值;如果rank 为2,它将返回第二高的值,依此类推。
要返回最高的前 5 个值,请使用 5 次CUBERANKEDMEMBER 函数,每一次指定从 1 到 5 的不同rank。
Caption是显示在多维数据集的单元格(而不是标题)中的文本字符串(如果定义了一个文本字符串的话)。
注解当CUBERANKEDMEMBER 函数求值时,它会在检索到所有数据之前在单元格中暂时显示“#GETTING_DATA…”消息。
如果连接名称不是存储在工作簿中的有效工作簿连接,则CUBERANKEDMEMBER 函数返回错误值#NAME?。
如果联机分析处理(OLAP) 服务器未运行、不可用或返回错误消息,则CUBERANKEDMEMBER 函数返回错误值#NAME?。
如果set_expression 语法不正确,或者集合至少包含一个维数与其他成员都不同的成员,则CUBERANKEDMEMBER 函数将返回错误值#N/A。
示例=CUBERANKEDMEMBER("Sales",$D$4,1,"Top Month")=CUBERANKEDMEMBER("Sales",CUBESET("Sales","Summer","[2004].[June]","[2004].[July]","[2004].[August]"),3, "Top Month")要返回最低的n 个值,请使用CUBESET 函数的sort_order 和sort_by 参数来反转集合的顺序,以便在排序后的集合中最高值成为最低值。
例如,CUBERANKEDMEMBER ("Sales", $D$4,1) 将返回最后一个成员,CUBERANKEDMEMBER ("Sales", $D$4, 2) 返回倒数第二个成员,依此类推。