如何在PBI中将计算得出的度量值放入“新表”中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在PBI中将计算得出的度量值放入“新表”中相关的知识,希望对你有一定的参考价值。
我想在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_)
问候
答案
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] )
以上是关于如何在PBI中将计算得出的度量值放入“新表”中的主要内容,如果未能解决你的问题,请参考以下文章
数据可视化之powerBI基础(二十)Power BI度量值和新建表,有什么异同?