Можно ли создать срезы числового диапазона и фильтровать данные в матрице в Power BI Desktop? - PullRequest
0 голосов
/ 15 октября 2018

У меня есть матрица с двумя мерами: Total Premium и Binds Total .............................................................

enter image description here

Isможно создать срезы диапазона (что-то вроде приведенного ниже), которые бы фильтровали данные в матрице на основе суммы премии?

enter image description here

Данныев запросе выглядит так:

enter image description here

Таким образом, сумма Premum для каждого ControlNo должна соответствовать Range Slicer.

Например, ControlNo 10 должно находиться в диапазоне от 10,000 and 20,000.Потому что 3000 + 9000 = $ 12000

и ControlNo 20 должны находиться в диапазоне между 20,000 and 30,000 Поскольку 15 000 + 7000 = $ 22 000

.PBIX файл доступен здесь: https://www.dropbox.com/s/a3l6e51r39t3kd1/GrossBudgetTest.pbix?dl=0

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Ответ Марко выглядит хорошо, но вы также можете добиться группировки с вычисляемым столбцом вместо определения новой таблицы и использовать этот столбец в качестве среза:

Range = 
VAR Premium =
    CALCULATE(SUM(fact_Premium[Premium]),
        ALLEXCEPT(fact_Premium, fact_Premium[ControlNo])
    )
RETURN
    SWITCH(TRUE(),
        Premium <= 10000, "From 0 to 10,000",
        Premium <= 20000, "From 10,000 to 20,000",
        Premium <= 30000, "From 20,000 to 30,000",
        Premium <= 40000, "From 30,000 to 40,000",
        Premium >  40000, "More than 40,000"
    )

Недостатком этого является то, что это немера и может не взаимодействовать с вашими срезами так, как вы хотите, так как на вычисляемые столбцы срезы не влияют.


Примечание. В Power BI есть некоторая встроенная возможность объединения .

Например, вы можете щелкнуть правой кнопкой мыши по столбцу Premium, выбрать «Группировать» и выбрать способ объединения данных.

Binning

В этом случае это не сработает, поскольку вы хотите скопировать на агрегированном уровне.

0 голосов
/ 15 октября 2018

Сначала создайте таблицу «Диапазоны».Вы можете импортировать его или использовать ввод данных на главной вкладке.Это должно выглядеть так:

enter image description here

Затем создайте следующие три типа:

MinThreshold = MIN('Ranges'[Min])

MaxThreshold = MAX('Ranges'[Max])

Total Premium per ControlNo in Range =
VAR selectedControlNo =
    SELECTEDVALUE ( 'fact_Premium'[ControlNo] )
RETURN
    IF (
        CALCULATE ( [Total Premium], 'fact_Premium'[ControlNo] = selectedControlNo )
            >= [MinThreshold]
            && CALCULATE ( [Total Premium], 'fact_Premium'[ControlNo] = selectedControlNo )
                < [MaxThreshold],
        [Total Premium],
        BLANK ()
    )

Вы не можете использовать функцию SELECTEDVALUE непосредственно в [Filter1] функции CALCULATE.Вот почему вы должны использовать VAR RETURN или конструкцию CALCULATE (expression, FILTER ()) в этом maesure.

Теперь вы можете создать следующую матрицу и слайсер.Поместите «Диапазоны» [Диапазоны] в слайсер.Поместите 'fact_Premium' [ControlNo] в строки и [Total Premium на каждый ControlNo в диапазоне] значения в матрице.

enter image description here

...