Excel中CUBESET函数同维度多条件筛选技术问询
在Excel CUBESET中实现同一维度多条件筛选
嘿,我懂你现在卡在CUBESET同一维度多条件筛选这儿了!之前你写的单条件公式已经很到位,咱们直接把它扩展成多条件的就行,我给你讲两种最实用的方法~
方法1:直接枚举同一维度的多个成员(或逻辑)
如果你的需求是在同一维度下选多个固定成员(比如同时筛选Bucket里的「DPA」和「Brand」),只需要把这些成员用逗号分隔,放在大括号{}里就行,和其他维度的交叉逻辑保持不变。
比如把你的示例1改成多条件版本:
=CUBESET("ThisWorkbookDataModel","{[Facebook].[Bucket (C)].[All].[DPA], [Facebook].[Bucket (C)].[All].[Brand]} * [Facebook].[AudienceType (C)].children","Multi-Condition Bucket")
这里的逗号就代表「或」的逻辑——筛选出Bucket是DPA 或者 Brand的所有AudienceType成员。
方法2:用Filter函数实现自定义多条件筛选
如果你的条件更复杂(比如要筛选名称包含特定字符、满足数值范围的成员),可以用MDX的Filter函数来定义逻辑,这在同一维度的多条件判断里特别好用。
比如要筛选Bucket名称里包含「PA」且名称长度大于3的成员,公式可以这么写:
=CUBESET("ThisWorkbookDataModel","Filter([Facebook].[Bucket (C)].children, Len([Facebook].[Bucket (C)].CurrentMember.Name) > 3 AND InStr([Facebook].[Bucket (C)].CurrentMember.Name, ""PA"") > 0)","Filtered Buckets")
注意:Excel里写MDX字符串时,双引号需要用两个双引号""来转义,不然会报错。
动态引用单元格的多条件示例
你之前已经会引用单个单元格的日期了,要是想同时引用多个单元格(比如C3和C4两个日期),只需要把每个单元格的成员拼接起来,用逗号分隔放进大括号里就行:
=CUBESET("ThisWorkbookDataModel","{[Facebook].[Week End].[All].["&TEXT($C$3,"m/d/yyyy")&"], [Facebook].[Week End].[All].["&TEXT($C$4,"m/d/yyyy")&"]} * [Facebook].[Campaign (C)].children","Multi-Date Campaigns")
这样就能同时筛选C3和C4两个日期对应的Campaign成员了。
关键总结
- 同一维度多成员的「或」筛选:用
{成员1, 成员2,...}的格式枚举 - 复杂自定义条件:用
Filter(维度成员, 逻辑条件)来实现 - 动态单元格引用:把每个单元格的成员用
TEXT转换格式后,拼接进大括号
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

