Excel 使用Cubeset在指定时间段内创建前10项列表
我正在使用Excel 2010创建指定时间段内销售额排名前10的供应商列表。问题是,我只需要考虑客户是特定集合的成员。我发现这有助于我从所有客户那里获得销售排名前十的供应商,但我很难只对特定集合的成员进行求和。我尝试了位于注释页面下方的Sum/CrossJoin示例,但无法使其正常工作。这可能是因为我对这方面相当陌生,只是不知道哪些部分需要放在哪里。以下是我到目前为止的情况(我的连接名在M1单元中):Excel 使用Cubeset在指定时间段内创建前10项列表,excel,excel-2007,mdx,excel-formula,excel-2010,Excel,Excel 2007,Mdx,Excel Formula,Excel 2010,我正在使用Excel 2010创建指定时间段内销售额排名前10的供应商列表。问题是,我只需要考虑客户是特定集合的成员。我发现这有助于我从所有客户那里获得销售排名前十的供应商,但我很难只对特定集合的成员进行求和。我尝试了位于注释页面下方的Sum/CrossJoin示例,但无法使其正常工作。这可能是因为我对这方面相当陌生,只是不知道哪些部分需要放在哪里。以下是我到目前为止的情况(我的连接名在M1单元中): 所有客户(工作完美): 客户子集(似乎返回正确的集合): 任何帮助和/或指导都将不胜感激
所有客户(工作完美):
客户子集(似乎返回正确的集合):
任何帮助和/或指导都将不胜感激……提前感谢 你可以试试这样的东西
=CUBESET($M$1,
"TopCount(
[Product].[Brand].Children,
10,
Sum(
(
[Time].[Calendar].[Calendar Month].&[2011]&[8],
[Customer].[Is Internal].&[False],
[Customer].[Type].&[CAT]
),
[Measures].[Revenue]
)
)",
"Top 10 Brands"
)
我已经想出了一种导出此列表的替代方法,但是,这非常有效,我可能最终会用此解决方案取代我的解决方案。谢谢米朗!这太棒了!我试图在立方体集中使用NONEMPTY()来获得前10名。它总是以不特定的顺序输出随机结果。用求和技术添加TOPCOUNT解决了一个我很长时间都无法解决的问题。非常感谢。我面临着这个解决方案的一个小问题。它始终显示10个结果,即使只有一个成员具有非空和。如何修改此表达式以仅显示非空和?
=CUBESET($M$1,
"Intersect(
Intersect(
exists(
[Customer].[Cust Num].Members,
{[Customer].[Is Internal].&[False],[Customer].[Is Internal].[All].UNKNOWNMEMBER}
),
exists(
[Customer].[Cust Num].Members,
[Customer].[Type].&[CAT]
),
ALL
),
exists(
[Customer].[Cust Num].Members,
[Market].[Market ID].[All].Children - [Market].[Market ID].&[3] - [Market].[Market ID].&[4]
),
ALL
)",
"Cust Group"
)
=CUBESET($M$1,
"TopCount(
[Product].[Brand].Children,
10,
Sum(
(
[Time].[Calendar].[Calendar Month].&[2011]&[8],
[Customer].[Is Internal].&[False],
[Customer].[Type].&[CAT]
),
[Measures].[Revenue]
)
)",
"Top 10 Brands"
)