全部文档
文档中心财务模型多维表达式MDXMDX函数集合函数MemberSet函数

MemberSet函数

函数用于返回指定成员的满足条件的后代成员的集合。

MemberSet ( Member_Expression , [{ Distance }[, Desc_flags ]])

Member_Expression -> 数据类型:Member 表示指定的维度成员,可以直接使用成员表达式,或相应的返回单个维度成员的函数 Distance -> 数据类型:Number 可选,表示从指定的维度成员开始往下(往叶子节点的方向)的距离。如果用0则表示指定成员本身。 Desc_flags -> 数据类型:关键字 可选,类型标志,包含如下选项:

标志

描述

SELF

仅返回指定级别或指定距离处的后代成员。 如果指定级别为指定成员所在的级别,该函数将包括指定成员。

AFTER

返回指定级别或指定距离处的所有从属级别的后代成员。

BEFORE

返回指定成员和指定级别之间或指定距离内所有级别的后代成员。 它包含指定成员,但不包括指定级别或距离的成员。

BEFORE_AND_AFTER

返回指定成员所在级别的所有从属级别的后代成员。 它包括指定成员,但不包括指定级别或指定距离处的成员。

SELF_AND_AFTER

返回指定级别或指定距离内的后代成员,以及指定级别或指定距离内的所有从属级别的后代成员。

SELF_AND_BEFORE

返回指定级别或指定距离内的后代成员,以及指定成员和指定级别之间或指定距离内所有级别的后代成员(包括指定成员)。

SELF_BEFORE_AFTER

返回指定成员所在级别的所有从属级别的后代成员(包括指定成员)。

LEAVES

返回指定成员和指定级别之间或指定距离内的叶后代成员。

返回值数据类型: {Member}

我们以下图为例来解释MemberSet函数的用法。在期间维度中,我们一共设定了4级,全年,半年,季度和月份。

  • Self,返回层级本身

MemberSet([Period].[YearTotal],2,Self)

返回: {[Period].[Q1],[Period].[Q2],[Period].[Q3],[Period].[Q4]}

  • 使用After,返回指定层级以下的成员

MemberSet([Period].[YearTotal],1,After)

返回: {[Period].[Q1],[Period].[1], [Period].[2], [Period].[3], [Period].[Q2],[Period].[4], [Period].[5], [Period].[6], [Period].[Q3],[Period].[7], [Period].[8], [Period].[9], [Period].[Q4],[Period].[10], [Period].[11], [Period].[12]}

  • 使用Before,返回指定层级以上的成员

示例1:

MemberSet([Period].[YearTotal],2,Before)

返回: {[Period].[YearTotal], [Period].[1half], [Period].[2half]}

示例2:

MemberSet([Period].[2half],2,Before)

返回: {[Period].[2half], [Period].[Q3], [Period].[Q4]}

随后四种标志BEFORE_AND_AFTER, SELF_AND_AFTER, SELF_AND_BEFORE, SELF_BEFORE_AFTER则通过组合上面的Self,After和Before标志来实现。

  • 如果未指定级别、距离和标志,此函数将在假定使用了以下语法的情况下执行操作:

MemberSet
(
Member_Expression ,
Member_Expression.Level ,
SELF_BEFORE_AFTER
)

如下列写法

MemberSet([Period].[YearTotal])

会被默认转换成:

MemberSet([Period].[YearTotal],0,SELF_BEFORE_AFTER)

返回:

{[Period].[YearTotal], [Period].[1half], [Period].[Q1],[Period].[1], [Period].[2], [Period].[3], [Period].[Q2],[Period].[4], [Period].[5], [Period].[6], [[Period].[2half], Period].[Q3],[Period].[7], [Period].[8], [Period].[9], [Period].[Q4],[Period].[10], [Period].[11], [Period].[12]}

即返回YearTotal成员自己以及其所有后代。

  • 如果指定了级别但未指定说明标志,此函数将在假定使用了以下语法的情况下执行操作:

MemberSet
(
Member_Expression ,
Level_Expression,
SELF
)

如下列写法

MemberSet([Period].[YearTotal],1)

会被默认转换成:

MemberSet([Period].[YearTotal],1,SELF)

返回: {[Period].[1half], [Period].[2half]}

  • 当需要返回所有的叶子节点,又不确定一共多少层级时,可以在距离参数上传入-1,表示一直到最底层。

MemberSet([Period].[YearTotal],-1,Leaves)

返回:

{[Period].[1], [Period].[2], [Period].[3], [Period].[4], [Period].[5], [Period].[6], [Period].[7], [Period].[8], [Period].[9], [Period].[10], [Period].[11], [Period].[12]}

本页目录

回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send