如何在PBI中将计算得出的度量值放入“新表”中

问题描述 投票:0回答:1

我想在PBI中创建一个模拟,我使用norm.inv,我需要定义均值和西格玛,这些参数的计算取决于我页面中的某些过滤器(年数,状态等)。 。我的问题是,当我用代码创建“新表”并设置参数(均值和Sigma等于我的测量值)时,这些值将在不使用任何过滤器的情况下提取数据,我的意思是具有整个数据的值。我正在尝试模拟某个季节中温度我如何创建一个动态表,该动态表每次过滤器更改时都能够提取新参数?

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_)  

问候

parameters powerbi simulation measure
1个回答
0
投票

Power BI不允许将基于动态过滤的计算表作为模型的一部分。这是因为计算的表和列仅在加载数据并且建立表和关系的模型时才计算一次,因此无法响应任何切片器或过滤器。

但是,您可以在度量中使用类似这些计算表。例如,以下应该是一种有效的措施(假设我没有任何语法错误):

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] )
© www.soinside.com 2019 - 2024. All rights reserved.