|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
我把模型简化了一下,如下图,我分别用TopN函数和RankX函数做了一下,统计各学科的前3名在各班的分布情况,但出现了一些小问题,想请教一下大手子怎么解决。
首先是RankX函数无论是新建列还是使用度量值,看起来都没有问题,这里使用了两个度量值
Rank排名 = RANKX(ALL(Sheet5[姓名]),CALCULATE(SUM(Sheet5[成绩]),ALLEXCEPT(Sheet5,Sheet5[姓名],Sheet5[学科])))
RankX测试 = COUNTROWS(FILTER(Sheet5,[Rank排名] <= 3))
接下来是TopN函数,在总计这里出现了问题,我理解是总计的TopN选取了所有学科成绩的前3名,然后按班级分布,但没有想到解决方案,有没有大手子帮忙解决一下
TopN测试 =
var Top3 = TOPN(3,ALLEXCEPT(Sheet5,Sheet5[学科]),CALCULATE(SUM(Sheet5[成绩])))
var Result = CALCULATE(SUMX(VALUES(Sheet5[学科]),COUNTROWS(VALUES(Sheet5[姓名]))),KEEPFILTERS(Top3))
return
Result |
|