Powerbi 一对多连接时如何用幂BI中的值替换NULL
在我的模型中,我有一个不包含任何空值的表Powerbi 一对多连接时如何用幂BI中的值替换NULL,powerbi,dax,powerbi-embedded,Powerbi,Dax,Powerbi Embedded,在我的模型中,我有一个不包含任何空值的表AssignedToUser。 表TotalCounts包含每个用户的任务数 这两个表在UserGUID上联接,表TotalCounts包含UserGUID的空值 当我将所有内容放到一个表中时,AssignedToUser的值为空。 如何用AssignedToUser的值NULL替换“POOL” 在EditQuery下,我尝试创建其他列 if [AssignedToUser] = null then "POOL" else [AssignedToUse
AssignedToUser
。
表TotalCounts
包含每个用户的任务数
这两个表在UserGUID上联接,表TotalCounts包含UserGUID的空值
当我将所有内容放到一个表中时,AssignedToUser
的值为空。
如何用AssignedToUser的值NULL替换“POOL”
在EditQuery下,我尝试创建其他列
if [AssignedToUser] = null then "POOL" else [AssignedToUser]
但这没有帮助
更新:
谢谢你,亚历克西斯。
我已经创建了FullAssignedToUsers表,但当我尝试在UserGUID上与TotalCounts建立关系时,它不喜欢它
新表中的数据如下所示:
更新:
文件.ipbx可在此处访问:
我认为这里的问题是,您的join具有
UserGUID
值,而这些值不在AssignedToUsers
表中
FullAssignedToUsers =
ADDCOLUMNS(VALUES(TotalCounts[UserGUID]),
"AssignedToUser",
LOOKUPVALUE(AssignedToUsers[AssignedToUser],
AssignedToUsers[UserGUID], TotalCounts[UserGUID]))
要纠正这一点,一种可能是将AssignedToUsers
表替换为包含TotalCounts
表中所有UserGUID
值的表
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中,缺少的值为空()。试试这个:
=IF(
ISBLANK(AssignedToUsers[AssignedToUser]),
"Pool",
AssignedToUsers[AssignedToUser]
)
在
编辑查询
模式下构造列时使用的null
语法。我确实尝试过按您建议的方式创建专栏,但不幸的是,它仍然不起作用。感谢您,尽管此列是在建模窗口中计算的。单击“建模”选项卡上的“新建列”按钮。此代码在编辑查询模式下不起作用。是ISBLANK
我在建模窗口中使用。`null`我在查询编辑器窗口中使用。两者都不起作用。请在“编辑查询”窗口中尝试此操作。右键单击值为空的列。选择替换值。。。。将“查找值”框留空,然后将池放在“替换为”框中。不确定为什么UserGUID
值不唯一,但我还是推荐我在下面编辑的最后一种方法。我正确理解Table3[Name]
将是AssignedToUsers[AssignedToUser]
?@Oleg Yes。我编辑过。我从正在测试的文件中粘贴,忘记更改标签。谢谢。我创建了列TotalCounts[AssignedToUsers]
,但当我将它放到Axis时,它告诉我“无法确定关系”。我不敢相信这么简单的改变会引起这么多麻烦:)。嗯,我分享了董事会,但如果有什么事情,我可以说服管理层想象“池”而不是空值。@Oleg我查看了您的pbix文件,发现给您带来麻烦的是另一个表CountByType
。如果您将AssignedToUsers
和TotalCounts
之间的关系更改为双向过滤,那么您的视觉系统应该可以工作。实际上,没有从TotalCounts
到CountByType
@AlexisOlson的路径。要获得一个包含两个表的所有不同值的字典,什么是完全连接?