Dynamic powerbi中的动态排序
我有一个要求,其中,我需要根据图表中的销售价值获得前5名品牌 情况如下: 样本数据如下所示Dynamic powerbi中的动态排序,dynamic,powerbi,dax,ranking,slicers,Dynamic,Powerbi,Dax,Ranking,Slicers,我有一个要求,其中,我需要根据图表中的销售价值获得前5名品牌 情况如下: 样本数据如下所示 Brand Sales ----------- H 3500 B 2500 I 2200 A 1500 J 1400 K 900 E 800 F 700 L 650 D 600 C 500 N 200 M 150 G 100 Others null 现在,要求总是
Brand Sales
-----------
H 3500
B 2500
I 2200
A 1500
J 1400
K 900
E 800
F 700
L 650
D 600
C 500
N 200
M 150
G 100
Others null
现在,要求总是根据销售额显示前5名品牌。i、 例如,前4个品牌和第5个品牌显示为其他品牌,聚集了所有其他品牌
当用户从切片器中选择任何品牌(单选)时,该特定品牌应排名第一,与往常一样,排在前三名,最后一个是“其他”品牌,将其余品牌分组
我成功地获得了前4名和其他品牌。但是,在获取基于切片器选择的动态排名时,我们遇到了困难
请参阅我创建的以下度量:
销售总额
SumSales = SUM(Sheet1[Sales])
排名
Rank = RANKX(ALL(Sheet1[Brand ]),[SumSales])
Top5
Top5 = IF ([Rank] <= 4,[SumSales],
IF(HASONEVALUE(Sheet1[Brand ]),
IF(VALUES(Sheet1[Brand ]) = "Others",
SUMX ( FILTER ( ALL ( Sheet1[Brand ] ), [Rank] > 4 ), [SumSales] )
)
)
)
Top5=IF([Rank]4),[SumSales])
)
)
)
这比我预期的要复杂,但仍然是可能的
首先,让我们创建一个计算列,对稍后使用的品牌进行排名
Rank = RANKX(ALL(Sheet1), Sheet1[Sales])
这里的一个关键想法是,您需要一个单独的表来用作切片器,否则在进行选择时,您将无法看到所有品牌。让我们定义一个新表Brands
,如下所示:
Brands = SUMMARIZECOLUMNS(Sheet1[Brand ], Sheet1[Rank])
我们将用这张桌子做切片机
接下来,我们创建一个相当复杂的度量,以包含我们需要的所有逻辑:
Top5 =
VAR BrandRank = SELECTEDVALUE(Brands[Rank])
RETURN IF(MAX(Sheet1[Brand ]) = "Others",
CALCULATE(SUM(Sheet1[Sales]), ALL(Sheet1)) -
CALCULATE(SUM(Sheet1[Sales]), ALL(Sheet1),
Sheet1[Rank] >= BrandRank, Sheet1[Rank] < BrandRank + 5),
IF(COUNTROWS(ALLSELECTED(Brands[Brand ])) = 1,
IF(MAX(Sheet1[Rank]) >= BrandRank &&
MAX(Sheet1[Rank]) < BrandRank + 5,
SUM(Sheet1[Sales]),
BLANK()),
IF(MAX(Sheet1[Rank]) <= 5,
SUM(Sheet1[Sales]),
BLANK())))
Top5=
VAR BrandRank=所选值(品牌[Rank])
如果(最大值(表1[品牌])为“其他”,则返回,
计算(总计(表1【销售】),全部(表1))-
计算(总计(表1【销售】),全部(表1),
Sheet1[Rank]>=BrandRank,Sheet1[Rank]=BrandRank&&
最大值(表1[Rank]) 如果(最大值(第1页[排名])欢迎使用Stack Overflow!Stack Overflow不是一个讨论论坛,它是一个问答网站,您可以在这里提出特定的编程问题,这些问题可以回答,而不是讨论。请阅读并编辑您的问题,以符合网站指南。像这样的非主题问题通常会关闭,但如果edited想问一个可回答的问题,可以重新打开。谢谢。你的问题是什么?@Alexilson问题是-如何根据切片机中的选择获得动态排名。假设我选择了一个销售额不在前5名的品牌,即使该品牌在切片机中被选中,它也应该排在第一位,其余的品牌应该排在第一位定期更新(第二、第三、第四),然后更新“其他”作为剩余品牌的总结。请参考屏幕截图链接。upped为您花费的时间尝试了解这一点!