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 名。
如果您正在使用数据透视表,那么您可以使用过滤器选项来实现这一点。
我试图在 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 名。
如果您正在使用数据透视表,那么您可以使用过滤器选项来实现这一点。