Как вывести рассчитанные меры в «новую таблицу» в PBI - PullRequest
1 голос
/ 30 апреля 2020

Я хотел бы создать симуляцию в PBI, я использую norm.inv и мне нужно определить среднее и сигма, эти параметры рассчитываются в зависимости от некоторых фильтров на моей странице (количество лет, штатов и т. Д. c). ...). Моя проблема заключается в том, что когда я создаю «новую таблицу» с кодом и устанавливаю параметры (среднее и сигма, равные моим показателям), чтобы значения извлекали данные без какого-либо фильтра, я имею в виду значение для целых данных. Я пытаюсь смоделировать количество дней с температурой Как я могу создать динамическую таблицу c, которая может получать новые параметры каждый раз, когда меняются мои фильтры?

ZZ_Y average per Year_ = 
AVERAGEX(KEEPFILTERS(VALUES('Historical_Data'[Year_])), CALCULATE([ZZ_Y]))

ZZ_Y variance per Year_ = 
VARX.P(KEEPFILTERS(VALUES('Historical_Data'[Year_])), CALCULATE([ZZ_Y]))


Simulation = 
var Mean_ = [ZZ_Y average per Year_]
var Sigma_ = power([ZZ_Y variance per Year_], .5)
Return
SELECTCOLUMNS(
            GENERATESERIES(.001, 1, .001),
               "_Value" , [Value] ,
               "_Index" , norm.inv([Value] , Mean_, Sigma_),
                "Mean", Mean_,
                "Sigma", Sigma_,
                "Y_1" , norm.inv(RAND(), Mean_, Sigma_),
                "Y_2" , norm.inv(RAND(), Mean_, Sigma_),
                "Y_3" , norm.inv(RAND(), Mean_, Sigma_)  

С уважением

1 Ответ

1 голос
/ 01 мая 2020

Power BI не допускает, чтобы вычисляемые таблицы, основанные на динамической фильтрации c, были частью модели. Это связано с тем, что вычисляемые таблицы и столбцы вычисляются только один раз, когда данные загружаются, а модель таблиц и связей установлена ​​и, следовательно, не может реагировать на какие-либо срезы или фильтры.

Однако вы можете использовать вычисленные таблицы, подобные этим, в показателе. Например, следующее должно быть допустимым показателем (при условии, что у меня нет синтаксических ошибок):

Simulation =
VAR Mean_ = [ZZ_Y average per Year_]
VAR Sigma_ = POWER ( [ZZ_Y variance per Year_], 0.5 )
VAR Matrix =
    SELECTCOLUMNS (
        GENERATESERIES ( .001, 1, .001 ),
        "_Value", [Value],
        "_Index", NORM.INV ( [Value], Mean_, Sigma_ ),
        "Mean", Mean_,
        "Sigma", Sigma_,
        "Y_1", NORM.INV ( RAND (), Mean_, Sigma_ ),
        "Y_2", NORM.INV ( RAND (), Mean_, Sigma_ ),
        "Y_3", NORM.INV ( RAND (), Mean_, Sigma_ )
    )
RETURN
    AVERAGEX ( Matrix, [Y_1] + [Y_2] + [Y_3] )
...