DAX - RANKX с использованием двух расчетов - - PullRequest
1 голос
/ 22 апреля 2020

У меня есть таблица данных, которая содержит транзакции по поставщикам. Каждая строка данных представляет одну транзакцию. Каждая транзакция содержит столбец «QTY», а также «Поставщик».

Мне нужно ранжировать этих поставщиков по количеству транзакций (Количество строк на уникального поставщика), а затем по сумме «QTY» для всех транзакций каждого поставщика. Это должно быть в формуле 1 ранга, а не два отдельных рейтинга. Это поможет разорвать все связи в моем рейтинге.

Я перепробовал десятки формул и подходов и, похоже, не могу понять это правильно.

См. Пример ниже:

Поставщики AB C и EFG имеют по 4 транзакции, поэтому они фактически будут иметь значение ie для ранга 1, однако AB C имеет количество 30 и EFG имеет QTY из 25, поэтому AB C должен занимать 1 место, а EFG должно занимать 2 место.

Кто-нибудь может помочь?

https://i.stack.imgur.com/vCsCA.png

1 Ответ

0 голосов
/ 22 апреля 2020

Добро пожаловать на 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)

Вот окончательный результат -

enter image description here

Мне интересно посмотреть, если кто-нибудь публикует альтернативное решение. А пока попробуй и дай мне знать, работает ли он как положено.

...