IF()使用忽略过滤器的变量进行测量

时间:2019-05-17 12:57:46

标签: powerbi dax

我有一个带有4个变量的度量,其最终乘积(FixedBooleanValue)如果为0,则返回true,否则返回false。

return之前的所有四个变量将按组织进行过滤 如果将其转换为自己的度量,则正确无误,并且只有最终的度量似乎在过滤后会被忽略。

这里的关系是:

Agreement[AgreementKey] 1 - * Agreement Conditions[AgreementKey]

Calendar[DateKey] 1 - * 'Agreement Conditions'[DateKey]

Organisation[OrganisationKey 1 -* 'Agreement Conditions'[OrganisationKey]

措施是:

Discount Fixed Boolean :=
VAR Margin =
    CALCULATE (
        AVERAGE ( 'Agreement Conditions'[Discount Margin Pct] ),
        LASTNONBLANK (
            'Calendar'[ActualDate],
            AVERAGE ( 'Agreement Conditions'[Discount Margin Pct] )
        )
    )
VAR Minimum =
    CALCULATE (
        AVERAGE ( 'Agreement Conditions'[Discount Minimum Pct] ),
        LASTNONBLANK (
            'Calendar'[ActualDate],
            AVERAGE ( 'Agreement Conditions'[Discount Minimum Pct] )
        )
    )
VAR BaseRate =
    CALCULATE (
        AVERAGE ( 'Agreement Conditions'[Discount Base Rate Pct] ),
        LASTNONBLANK (
            'Calendar'[ActualDate],
            AVERAGE ( 'Agreement Conditions'[Discount Base Rate Pct] )
        )
    )
VAR FixedBooleanValue = Margin + Minimum + BaseRate
RETURN
    IF ( FixedBooleanValue = 0, TRUE, FALSE )

由于某种原因,过滤器上下文未应用于最终的if(),并且看起来像是交叉联接,因为所有协议密钥都出现在所有组织的旁边。

我很高兴能向我展示我要去哪里。

1 个答案:

答案 0 :(得分:0)

当FixedBooleanValue为null / blank时,与零的比较也为true。请尝试以下操作,以免因协议密钥和组织的无意义组合而返回True。

RETURN
  IF ( 
    NOT(ISBLANK(FixedBooleanValue)),
    FixedBooleanValue = 0
  )

基本上,如果FixedBooleanValue = 0,则RETURN子句将返回True,否则返回False。但是,如果为空白,则返回空白(因为省略IF的第三个参数表示空白)。