首页 > 解决方案 > DAX IF 度量 - 返回固定值

问题描述

这应该是一个非常简单的要求。但似乎不可能在 DAX 中实现。

数据模型,用户查找表加入了许多链接到每个用户的“卡片”。

在此处输入图像描述

我有一个度量设置来计算 CardUser 中的行数。那工作正常。

<measureA> = count rows in CardUser

我想创建一个新的度量,

<measureB> = IF(User.boolean = 1,<measureA>, 16)

如果 User.boolean = 1,我想返回一个固定值 16。实际上,绕过 measureA。

我不能简单地将 User.boolean = 1 放在 IF 条件中,会引发错误。

如果 User.boolean = 1,我可以修改 measureA 本身以返回 0

measureA> =
CALCULATE (
 COUNTROWS(CardUser),
 FILTER ( User.boolean != 1 )
)

这可行,但我仍然找不到仅在 User.boolean = 1 时返回 16 的方法。

标签: dax

解决方案


这在 DAX 中很容易,您只需要学习“X”函数(又名“迭代器”):

Measure B = 
   SUMX( VALUES(User.boolean),
         IF(User.Boolean, [Measure A], 16))

VALUES 函数生成不同的 user.boolean 值列表(在本例中为 1、0)。然后,SUMX 迭代此列表,并将 IF 逻辑应用于每个记录。


推荐阅读