Excel PowerPivot:为CUBEVALUE/CUBESET添加订单量>0的筛选条件
解决CUBE函数筛选S’22订单量>0的唯一供应商问题
一、修正CUBESET公式(获取符合条件的供应商集合)
你的原CUBESET公式未正确筛选出订单量>0的供应商,可通过FILTER函数结合切片条件实现精准筛选:
=CUBESET("ThisWorkbookDataModel", "FILTER([TFG Supplier Name].children, CUBEVALUE("ThisWorkbookDataModel", [Query1].[SOURCING SPLIT].[All].[LOCAL], [Query1].[SOURCING REPORTING PRODUCT].[All].[KNITWEAR], [Query1].[Gender].[All], [TFG Supplier Name].currentmember, [Measures].[sum of S'22 units])>0)", "DSups")
- 逻辑说明:遍历所有供应商子项,对每个供应商计算其在指定切片(LOCAL、KNITWEAR、全Gender)下的S’22订单量,仅保留订单量>0的供应商。
- 注意:Excel单元格输入时无需转义双引号,直接使用单个双引号即可。
此时使用CUBESETCOUNT(DSups)会返回你预期的3。
二、用CUBEVALUE统计符合条件的唯一供应商数量
若无需单独的供应商集合,可直接结合CUBESET与CUBEVALUE计算:
=CUBEVALUE("ThisWorkbookDataModel", [Query1].[SOURCING SPLIT].[All].[LOCAL], [Query1].[SOURCING REPORTING PRODUCT].[All].[KNITWEAR], [Query1].[Gender].[All], [Measures].[distinct count of Supplier Name], CUBESET("ThisWorkbookDataModel", "FILTER([TFG Supplier Name].children, CUBEVALUE("ThisWorkbookDataModel", [Query1].[SOURCING SPLIT].[All].[LOCAL], [Query1].[SOURCING REPORTING PRODUCT].[All].[KNITWEAR], [Query1].[Gender].[All], [TFG Supplier Name].currentmember, [Measures].[sum of S'22 units])>0)"))
若已定义好CUBESET(如命名为DSups),可简化为:
=CUBEVALUE("ThisWorkbookDataModel", [Query1].[SOURCING SPLIT].[All].[LOCAL], [Query1].[SOURCING REPORTING PRODUCT].[All].[KNITWEAR], [Query1].[Gender].[All], [Measures].[distinct count of Supplier Name], DSups)
该公式会返回你预期的2。
替代方案(用NONEMPTY简化筛选)
若订单量不会为负数,可使用NONEMPTY函数更高效地筛选非空订单量的供应商:
=CUBESET("ThisWorkbookDataModel", "NONEMPTY([TFG Supplier Name].children, ([Query1].[SOURCING SPLIT].[All].[LOCAL], [Query1].[SOURCING REPORTING PRODUCT].[All].[KNITWEAR], [Query1].[Gender].[All], [Measures].[sum of S'22 units]))", "DSups")
内容的提问来源于stack exchange,提问作者JVN
相关产品推荐
相关产品推荐

