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

Filter函数

返回根据搜索条件对指定成员集合进行筛选后得到的集合。

Filter(Set_Expression, Logical_Expression )  

Set_Expression -> 数据类型:{Member} 成员集合。 _Logical_Expression -> 数据类型:_Boolean 计算结果为 True 或 False 的有效多维表达式 (MDX) 逻辑表达式。该条件执行时会对Set_Expression中的成员进行遍历。

返回值数据类型: {Member}

Filter函数对指定集中的每个元组进行遍历,同时计算指定的逻辑表达式。满足逻辑表达式的元组将会被加入返回的集合中。 Filter函数通常会和CurrentMember函数搭配使用。

具体案例如下,[Store]维度中,每一个成员都有一个自定义属性ud1,引用了另一个[Region]维度: 以下表达式会返回所有ud1属性(即[Region]属性维度)为“Shanghai”的Store成员

从MemberSet([Store].[TotalStore])中筛选出,ud1属性值为"Shanghai"的成员

Filter(MemberSet([Store].[TotalStore]), Properties(CurrentMember([Store]), "ud1")="Shanghai")

如果搭配IsAncestor等布尔类型的函数使用,可以进一步拓展筛选的能力。例如,以下表达式会返回成员的ud1属性(即[Region]属性维度)是[Store].[ud1].[East]成员的后代的Store成员。

从MemberSet([Store].[TotalStore])中筛选出,ud1属性值为[Store].[ud1].[East]后代的成员

Filter(MemberSet([Store].[TotalStore]), IsAncestor([Store].[ud1].[East], Properties(CurrentMember([Store]),"ud1",TYPED)))

当Filter的Set参数中的元组包含两个或以上的维度成员时,通过CurrentMember(Dimension_expression |Hierarchy_expression) 语句中指定的具体的维度,从Filter的第一个Set参数中用对应的维度的成员进行遍历,来验证逻辑表达式的准确性。 例如表达式如下:

Filter({([Year].[2021], [Period].[11]),([Year].[2021], [Period].[12]),([Year].[2022], [Period].[1])}, CurrentMember([Year])=[Year].[2021])

该表达式会返回的Set为:

{([Year].[2021], [Period].[11]),([Year].[2021], [Period].[12])}
本页目录

回到顶部

咨询热线

400-821-9199

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

ctrl+Enter to send