Power BI / DAX Query - поиск значения по диапазону в другой таблице - PullRequest
0 голосов
/ 05 декабря 2018

Итак, у меня есть одна таблица с уникальными счетами в виде строк, с именем поставщика и стоимостью счета среди столбцов, что-то вроде:

Invoice | Vendor | Cost
AAA     | Good Co| $10
BBB     | Good Co| $15
CCC     | Best Co| $30
DDD     | Bad Co | $50

И я создал собственный столбец, чтобы дать мне общее количествопотратить на каждого поставщика:

VendorGrandTotal = 
CALCULATE(SUM('Raw Data'[Cost]),ALLEXCEPT('Raw Data','Raw Data'[Vendor]))

Чтобы получить такой результат, как:

Invoice | Vendor | Cost | Total
AAA     | Good Co| $10  | $25
BBB     | Good Co| $15  | $25
CCC     | Best Co| $30  | $30
DDD     | Bad Co | $50  | $50

Между тем, у меня есть еще одна таблица, в которой показан процент скидки от продавца в зависимости от общей суммы расходов с ними.выше или ниже определенной суммы.Что-то вроде:

Vendor   | Tier 1 % | Tier 1 From | Tier 1 To | Tier 2% | Tier 2 From
Good Co  | 1%       | $0          | $20       | 2%      | $20

... и т. Д.

Так что в случае этого примера мы должны получить скидку в 2%, поскольку общие расходы по счетам с GoodCo в сумме превышает 20 долларов.Но я поставлен в тупик за то, как выполнить это автоматически в Power BI.Есть ли способ создать столбец или таблицу где-нибудь, чтобы проверить, что поставщик в таблице счетов-фактур тот же, что и в списке уровней скидок, И может проверить по различным уровням уровней, чтобы увидеть, какой процент является скидкой, И вернуть этот процент какв результате чего другие вычисления могут быть выполнены против?

1 Ответ

0 голосов
/ 05 декабря 2018

Я бы посоветовал отменить поворот вашей таблицы бонусов, чтобы она выглядела следующим образом:

Vendor   | Tier | From | To  | Rebate
Good Co  | 1    | $0   | $20 | 1%
Good Co  | 2    | $20  |     | 2%

Затем вы можете посмотреть соответствующий процент бонуса, взяв максимальную строку соответствия, где VendorGrandTotal больше From.

Как вычисленный столбец на 'Raw Data', вы можете сделать это:

Rebate % = 
MAXX(
    FILTER(Rebates,
        Rebates[Vendor] = EARLIER([Vendor]) &&
        Rebates[From] < EARLIER([VendorGrandTotal])
    ),
    Rebates[Rebate]
)
...