Power Pivot 中的前 5 条和后 5 条记录

Top 5 and Bottom 5 records in Power Pivot

我试图在 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 中显示 OverallRatings 的前 5 名和后 5 名 Table

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

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

谁能帮我解决我做错的地方,或者我需要尝试其他方法吗?

我们将不胜感激。

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

首先要注意的是,我没有添加任何计算列。相反,我使用了以下 4 项措施,它们相互促进以获得排名。

CountByName(替换您的计数度量)

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

RatingByName(每个名字的评分总和)

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

总体评分(每个名字rating/count)

OverallRating:=[RatingByName]/[CountByName]

排名(排名基于总体评分)

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] 度量 return 前 5 名和后 5 名。

如果您正在使用数据透视表,那么您可以使用过滤器选项来实现这一点。