我有一个名为Conditions
的表,该表链接到一个名为Agreement
的表,关系为AgreementID
。
在Conditions
中,我已经在名为Margin Pct-EOP
和Minimum Pct-EOP
的模型中预先计算了两个度量,它们根据过滤器上下文返回值。
我在Power BI中创建了名为InterestRateFloorBoolean
的度量,如果这些度量不匹配,则返回true
。
InterestRateFloorBoolean = if('Conditions'[Margin Pct-EOP] <> 'Conditions'[Minimum Pct-EOP],true,false)
如果该度量返回true
,则称为InterestRateFloorAmount
的后续度量将运行以下计算(简单的底减法)。
if([InterestRateFloorBoolean] = true,floor([Minimum Pct-EOP] - [Margin Pct-EOP],0.01),BLANK())
在行级别,返回所需的输出,blank()
显示边距/最小度量的匹配位置。但是,“总计”平均运行2个AgreementID
条目,因为ID 3236确实具有“保证金”和“最小值”值。 ID 3336被排除在外,因为它没有任何条目。
我知道blank()
与null
是不同的,并且出于合计(平均值)的目的,实际上将其视为0。如何构造我的InterestRateFloorAmount
度量,以便在对总数求平均值时不包含任何blank()
值?
当前输出为例,InterestRateFloorAmount
的总计应为4.00%(百分比是一种格式):
答案 0 :(得分:1)
这是由于计算上下文以及如何计算两个度量[Margin Pct-EOP]
和[Minimum Pct-EOP]
。
因为在总行的上下文中,计算将忽略前几行的上下文。因此,InterestRateFloorAmount
比较了IF-statement
中的两个量度:
InterestFloorAmount =
IF(
[InterestRateFloorBoolean] = true,
floor([Minimum Pct-EOP] - [Margin Pct-EOP], 0.01),
BLANK()
)
但是,在Total的上下文中,这两个量度分别为4.20%
和2.20%
(我假设它们分别像(2.25+6.15)/2
和(2.25+2.15)/2
一样计算)。从而
InterestFloorBoolean
的计算结果为TRUE
,因此InterestRateFloorAmount
的计算结果为4.20%-2.20%
,最终得到2.00%
。