这应该是一个非常简单的要求。但是似乎无法在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的方法。
答案 0 :(得分:2)
在DAX中很容易,您只需要学习“ X”功能(又称“迭代器”)即可:
Measure B =
SUMX( VALUES(User.boolean),
IF(User.Boolean, [Measure A], 16))
VALUES函数生成一个不同的user.boolean值(在这种情况下为1,0)的列表。然后,SUMX迭代此列表,并将IF逻辑应用于每个记录。