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 检查值是否在另一个表中,并在Power BI中添加列_Powerbi_Dax - Fatal编程技术网

Powerbi 检查值是否在另一个表中,并在Power BI中添加列

Powerbi 检查值是否在另一个表中,并在Power BI中添加列,powerbi,dax,Powerbi,Dax,我有两个表格,table1包含一些调查数据,table2是一个完整的学生名单。我想检查table2中的Name是否也在table1中找到。如果是,请在表2中添加年龄和级别信息,否则,请在这些列中填入无数据 表1: id Name Age Level 32 Anne 13 Secondary school 35 Jimmy 5 Primary school 38 Becky 10 Primary school 40 Anne 13 Secondary sch

我有两个表格,
table1
包含一些调查数据,
table2
是一个完整的学生名单。我想检查
table2
中的
Name
是否也在
table1
中找到。如果是,请在
表2中添加
年龄
级别
信息,否则,请在这些列中填入
无数据

表1:

id  Name  Age  Level 
32  Anne  13   Secondary school 
35  Jimmy 5    Primary school
38  Becky 10   Primary school
40  Anne  13   Secondary school 
表2:

id  Name   
1   Anne   
2   Jimmy    
3   Becky    
4   Jack   

预期产出:

id  Name   Age      Level 
1   Anne   13       Secondary school 
2   Jimmy  5        Primary school
3   Becky  10       Primary school
4   Jack   no data  no data

更新:

我使用公共列
id
(可以在
table1
中重复)在
table1
table2
之间创建了一个关系

然后我用了:

Column = RELATED(table1[AGE])
但它发现了一个错误:

The column 'table1[AGE]' either doesn't exist or doesn't have a relationship to any table available in the current context.

实现所需输出的方法有多种,但我发现最简单的方法是使用
相关的
DAX函数。如果你找到了这个答案,那么把它标记为答案

  • 使用“名称”列在
    表1
    表2
    之间创建关系
  • 表2中创建一个计算列,如下所示:

    Column=相关(表1[年龄])

  • 级别
    列也重复相同的步骤

    第2列=相关(表1[级别])

  • 这将为您提供一个带有
    ID
    Name
    Age
    Level
    的表,用于两个表之间的通用名称

  • 现在,要将这些空行填充为
    无数据
    ,只需使用以下DAX创建另一个计算列:

    Column 3=IF(为空(表2[Column]),“无数据”,表2[Column])

    第4列=如果(为空(表2[第2列]),“无数据”,表2[第2列])

  • 这将为您提供所需的输出

  • 编辑:-您还可以使用以下公式在单个列中执行相同的操作

         Column = 
         VAR X = RELATED(table`[AGE])
         VAR RES = IF(ISBLANK(X), "no data", X)
    
         RETURN
             RES
    

    这也将为您提供相同的输出


    您好,谢谢您的回答,您能简要解释一下步骤3中的DAX吗?另外,
    table1
    包含重复的
    Name
    ,例如
    Anne
    ,在这种情况下,我仍然可以使用
    Column=RELATED(table1[AGE])
    ?是的,当然可以。步骤3 DAX检查列(计算列)是否为空。如果为空,则返回
    无数据
    ,否则返回列值。请选中编辑,我已将这两个步骤合并到一个步骤中。如果不清楚,请告诉我,我会进一步解释。谢谢。谢谢,我试过了,但出现了一些错误,请查看问题更新以了解详细信息。请使用“名称”列创建关系。您好,很抱歉,我意识到我忽略了一些内容-同一个人可能有2个
    级别
    值。例如,Anne可能有多个带有
    小学
    中学
    值的行。是否有方法获取
    级别中具有不同值的所有行
    ?请使用
    名称
    创建关系,因为这两个表之间的名称是通用的,而不是
    ID
        Column 2 = 
        VAR X = RELATED(table1[LEVEL])
        VAR RES = IF(ISBLANK(X), "no data", X)
    
        RETURN 
           RES