使用Cubeset为指定的时间段创建前10个项目列表

时间:2011-09-27 15:02:43

标签: excel excel-2007 mdx excel-formula excel-2010

我使用Excel 2010在指定时间段内按销售额创建前10名供应商的列表。问题是,我只需要考虑属于特定集合的客户。我发现this article帮助我从所有客户那里获得了销售额排名前十的供应商,但我正在努力解决如何只对特定集合的成员进行总结的问题。我尝试了评论中页面下方的Sum / CrossJoin示例,但我无法使其工作。可能我在这方面很陌生,只是不明白哪些部分需要去哪里。这是我到目前为止(我的连接名称在单元格M1中):


所有客户(完美运作):

=CUBESET($M$1,
         "TopCount(
           [Product].[Brand].Children,
           10,
           Sum(
             [Time].[Calendar].[Calendar Month].&[2011]&[8],
             [Measures].[Revenue]
           )
         )",
         "Top 10 Brands"
)


客户的子集(似乎返回正确的集合):

=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"
)



任何帮助和/或指导将不胜感激.....提前感谢!

1 个答案:

答案 0 :(得分:3)

你可以试试这样的事情

=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"
)