Power Pivot中的前5和下5记录

时间:2015-02-26 07:43:51

标签: powerpivot dax powerview

我试图在Power View中的两个单独的表中显示前5条记录和后5条记录。

我创建了一个计算度量来显示记录。

但它没有给我所需的结果。

我的数据集是: -

ID  Name    Rating  OverallRating   Ranking
1   A       124     
2   B       156     
3   C       123     
4   D       124     
5   E       125     
6   F       143     
7   G       124     
8   H       123     
9   I       156     
10  A       178     
11  B       187     
12  C       123     
13  H       123     
14  I       134     
15  D       138     
16  E        50     
17  F        90     
18  G        70     

我也有以下措施

[Count]=SUMX(SUMMARIZE('Details',[Name],"Value",COUNTA([ID])),[Value])

总体评级的计算基于: - 每个名称的评级总和除以该名称的[ID]计数。

OverallRating=SUMX(SUMMARIZE('Details',[Name],"value2",([Rating])/[Count]),[value2])

然后我计算这个整体评分的排名。

Ranking=RANKX(ALL(Details),[overallRating],,0,Dense)

现在我想在Power View Table中使用OverallRatings获得前5名和后5名的名字

对于我使用以下查询的前5条记录: -

Top 5 name:=CALCULATE(SUMX(SUMMARIZE('Details',[Name],"value2",(SUM([overallRating]))),[value2]),FILTER('Details',RANKX(ALL('Details'),[Ranking])<=5))

有人可以在我做错的地方帮助我,或者我是否需要尝试别的东西。

我们将不胜感激。

2 个答案:

答案 0 :(得分:0)

我还没有使用PowerView,但是获得正确的排名是你问题的关键。

首先要注意的是,我没有添加任何计算列。相反,我使用了以下4个措施,相互建立以达到排名。

CountByName (替换您的计数指标)

CountByName:=CALCULATE(COUNTA(Details[Name]))

RatingByName (对每个名称的评分求和)

RatingByName:=CALCULATE(SUM(Details[Rating]))

OverallRating (每个名字的评分/数量)

OverallRating:=[RatingByName]/[CountByName]

排名(排名基于OverallRating)

Ranking:=RANKX(ALL(Details[Name]),[OverallRating])

由于这些都是度量,因此您可以创建数据透视表以测试它们是否正常工作。 (他们的工作基于我对您的数据的解释)。它按以下顺序对名称进行排名

1  2  3  4  5  6  7  8  9
B  A  I  D  H  C  F  G  E

根据我对PowerView的理解,您应该能够使用[Ranking]指标返回前5和后5。

答案 1 :(得分:0)

如果您使用透视报告,则可以使用过滤器选项来实现此目的。