我试图通过对每个组的字段(不是计算列)求和来对组进行排名,因此我得到了表格中每一行的静态答案。
例如,我可能有一个包含州,代理和销售的表。销售是一个领域,而不是衡量标准。一个州内可以有许多代理,因此每个州都有很多行。我试图按州内的总销售额对州进行排名。
我尝试了很多东西,但对我来说最有意义的是:
rankx(CALCULATETABLE(Table,allexcept(Table,Table[AGENT]),sum([Sales]),,DESC)
和
=rankx(SUMMARIZE(State,Table[State],"Sales",sum(Table[Sales])),[Sales])
第一个是创建一个表,在该表中,它可以在不按代理分组的情况下对销售额进行汇总。然后尝试根据它排名。我在这个上得到#ERROR。
第二个使用SUMMARIZE创建一个表,只有按州分组的Sales总和,然后尝试获取该表并根据Sales对状态进行排名。对于这一个,我每行得到1的等级。
我认为,但我不确定,我的问题来自销售是静态领域而不是计算的衡量标准。我无法弄清楚从哪里开始。有什么帮助吗?
答案 0 :(得分:0)
假设您的数据看起来像这样......
...你试过这个:
Ranking Measure = RANKX(ALL('Table'[STATE]),CALCULATE(SUM('Table'[Sales])))
ALL('表' [STATE])表示对所有州进行排名。 CALCULATE(SUM('表' [销售]))表示按销售总额排名。 CALCULATE包装很重要;一个简单的SUM('表' [Sales])将被过滤到当前行上下文,导致每个州排名#1。 (或者,您可以将SUM('表' [销售])分拆为单独的销售指标 - 我建议这样做。)
注意:排名将根据切片器/过滤器而改变(例如,按代理过滤器将按该代理重新排列状态)。如果您要按其总销售额(即不受代理商过滤器影响并始终查看整个表格)来查找状态的静态排名,请尝试以下操作:
Static Ranking Measure = CALCULATE([Ranking Measure], ALLEXCEPT('Table', 'Table'[State]))
这会采用相同的排名衡量标准,但会移除除状态过滤器之外的所有过滤器(您需要离开,因为这是您排名的列)。
答案 1 :(得分:0)
我确实找到了一个非常简单的解决方案,但它比我想要的更麻烦。如果它是唯一可行的,那没关系。
我创建了一个包含每个不同状态的新表以及一个销售总额,然后在该表上执行基本的RANKX。