DAX-使用两种计算的RANKX-

DAX-使用两种计算的RANKX-,dax,powerpivot,Dax,Powerpivot,我有一个包含供应商交易记录的数据表。每行数据代表一个事务。每个交易记录都包含一个“数量”列和一个“供应商”列 我需要根据交易数量(每个唯一供应商的行数)对这些供应商进行排名,然后根据每个供应商所有交易的“数量”之和对其进行排名。这需要一个排名公式,而不是两个单独的排名。这将有助于打破我排名中的任何联系 我尝试了几十种公式和方法,但似乎都做不好 请参见以下示例: 供应商ABC和EFG各有4笔交易,因此他们将有效地联系在一起,排名1。然而,ABC的数量为30,EFG的数量为25,因此ABC应排名1,

我有一个包含供应商交易记录的数据表。每行数据代表一个事务。每个交易记录都包含一个“数量”列和一个“供应商”列

我需要根据交易数量(每个唯一供应商的行数)对这些供应商进行排名,然后根据每个供应商所有交易的“数量”之和对其进行排名。这需要一个排名公式,而不是两个单独的排名。这将有助于打破我排名中的任何联系

我尝试了几十种公式和方法,但似乎都做不好

请参见以下示例:

供应商ABC和EFG各有4笔交易,因此他们将有效地联系在一起,排名1。然而,ABC的数量为30,EFG的数量为25,因此ABC应排名1,EFG应排名2

有人能帮忙吗


欢迎来到SO。可以创建新的计算列-

Rank = 
    var SumTable = SUMMARIZE(tbl, tbl[Supplier], "CountTransactions", COUNT(tbl[Transaction Number]), "SumQuantity", SUM(tbl[Quantity]))
    var ThisSupplier = tbl[Supplier]
    var ThisTransactions = SUMX(FILTER(SumTable, [Supplier] = ThisSupplier), [CountTransactions])
    var ThisQuantity = SUMX(FILTER(SumTable, [Supplier] = ThisSupplier), [SumQuantity])
    var ThisRank = 
            FILTER(SumTable, 
                [CountTransactions] >= ThisTransactions &&
                [SumQuantity] >= ThisQuantity)
return
    COUNTROWS(ThisRank)
这是最终结果-


我很好奇是否有人发布了替代方案。同时,试一下我的,让我知道它是否像预期的那样工作。

工作得很好。非常感谢你。现在我知道我可以在许多其他工具/报告中使用它。非常欢迎您,我很高兴它对您有用。请随意投票/将答案标记为正确答案-有关更多信息,请参阅。