Power BI DAX для разделения значения на несколько диапазонов - PullRequest
1 голос
/ 07 июня 2019

У меня есть данные, как показано ниже.

Product     Channel Account_Id  Max_tier        Balance
2000-0100   Direct  102123625   4999.999        174589.26
2000-0100   Direct  102123625   9999.999        174589.26
2000-0100   Direct  102123625   19999.999       174589.26
2000-0100   Direct  102123625   49999.999       174589.26
2000-0100   Direct  102123625   99999999999.99  174589.26

Я пытаюсь создать отчет в Power BI, где баланс должен быть разбит на диапазон, который должен соответствовать MAX_TIER. Таким образом, результат должен быть таким, как показано ниже

Product     Channel Account_Id  Max_tier        Balance     Split_range
2000-0100   Direct  102123625   5000            174589.26   5000
2000-0100   Direct  102123625   10000           0           10000
2000-0100   Direct  102123625   20000           0           20000
2000-0100   Direct  102123625   50000           0           50000
2000-0100   Direct  102123625   99999999999.99  0           89589.26

Любая мысль будет очень ценной

1 Ответ

1 голос
/ 07 июня 2019

Чтобы создать вычисляемый столбец Split_range, необходимо выяснить, какова совокупная сумма предыдущего уровня.Это можно сделать следующим образом:

CALCULATE (
    SUM ( Table1[Max_tier] ),
    ALLEXCEPT ( Table1, Table1[Product] ),
    Table1[Max_tier] < EARLIER ( Table1[Max_tier] )
)

То есть вы добавляете предыдущие уровни, где Product одинаково.

Имея это, вам просто нужно вычесть совокупную суммуиз баланса, если это число положительное и меньше текущего максимального значения.

Split_range =
VAR Cumulative =
    CALCULATE (
        SUM ( Table1[Max_tier] ),
        ALLEXCEPT ( Table1, Table1[Product] ),
        Table1[Max_tier] < EARLIER ( Table1[Max_tier] )
    )
RETURN
    IF (
        Table1[Balance] > Cumulative,
        MIN ( Table1[Balance] - Cumulative, Table1[Max_tier] ),
        0
    )

...