Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 一对多连接时如何用幂BI中的值替换NULL_Powerbi_Dax_Powerbi Embedded - Fatal编程技术网

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的路径。要获得一个包含两个表的所有不同值的字典,什么是完全连接?