在我的模型中,我有表AssignedToUser
,不包含任何NULL值。表TotalCounts
包含每个用户的任务数。
这两个表连接在UserGUID上,表TotalCounts包含UserGUID的NULL值。
当我将所有内容放在一个表中时,AssignedToUser
的值为NULL。如何将AssignedToUser的值NULL替换为“POOL”。
在EditQuery下,我尝试创建其他列
if [AssignedToUser] = null then "POOL" else [AssignedToUser]
但这没有帮助。
更新:谢谢Alexis。我已经创建了FullAssignedToUsers表,但是当我尝试在UserGUID上与TotalCounts建立关系时 - 它不喜欢它。
新表中的数据如下所示:
更新:文件.ipbx可以在这里访问:
https://www.dropbox.com/s/95frggpaq6tce7q/User%20Open%20Closed%20Tasks%20Experiment.pbix?dl=0
我相信这里的问题是你的连接有UserGUID
值不在你的AssignedToUsers
表中。
要纠正这个问题,一种可能性是将AssignedToUsers
表替换为包含UserGUID
表中所有TotalCounts
值的表。
FullAssignedToUsers =
ADDCOLUMNS(VALUES(TotalCounts[UserGUID]),
"AssignedToUser",
LOOKUPVALUE(AssignedToUsers[AssignedToUser],
AssignedToUsers[UserGUID], TotalCounts[UserGUID]))
应该让你完整的外部联接。然后,您可以按照表中所述创建自定义列,并在视觉中使用该列。
您可能希望打破与原始AssignedToUsers
表的关系,并创建与新表的关系。
如果你不想采取额外的步骤,你可以在你的新表公式中做一个ISBLANK
。
FullAssignedToUsers =
ADDCOLUMNS(VALUES(TotalCounts[UserGUID]),
"AssignedToUser",
IF(
ISBLANK(
LOOKUPVALUE(AssignedToUsers[AssignedToUser],
AssignedToUsers[UserGUID], TotalCounts[UserGUID])),
"POOL",
LOOKUPVALUE(AssignedToUsers[AssignedToUser],
AssignedToUsers[UserGUID], TotalCounts[UserGUID])))
注意:这相当于在查询编辑器中对AssignedToUsers
表执行右外连接合并,然后将空值替换为“POOL”。我实际上建议那样接近它。
接近它的另一种方法是将AssignedToUser
列拉到自定义列中的TotalCounts
表,然后在视觉中使用该列。
AssignedToUsers =
IF(ISBLANK(RELATED(AssignedToUsers[AssignedToUser])),
"POOL",
RELATED(AssignedToUsers[AssignedToUser]))
这相当于在查询编辑器中对TotalCounts
表执行左外连接合并,展开AssignedToUser
列,然后用该列中的“POOL”替换空值。
在Dax中,缺失值为Blank()而不是null。试试这个:
=IF(
ISBLANK(AssignedToUsers[AssignedToUser]),
"Pool",
AssignedToUsers[AssignedToUser]
)