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

Check if value is in another table and add columns in Power BI

我有 2 个表,table1 包含一些调查数据,table2 是所涉及学生的完整列表。我想检查 table2 中的 Name 是否也在 table1 中找到。如果是,请在table2中添加AgeLevel信息,否则,请在这些栏中填写no data

表 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 创建了 table1table2 之间的关系(可以在 table1 中重复)。

然后我用了:

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.

有多种方法可以实现所需的输出,但我发现其中最简单的方法是使用 RELATED DAX 函数。如果您找到此答案,请将其标记为答案。

  1. 使用“名称”列在 table1table2 之间创建关系。

  1. table2 中创建计算列为:

    Column = RELATED(table1[AGE])

  2. 也对 Level 列重复相同的步骤。

    Column 2 = RELATED(table1[LEVEL])

这将为您提供一个 table,其中 IDNameAgeLevel 是两个 [=82] 之间的通用名称=]s.

  1. 现在要将这些空行填充为 no data,只需使用以下 DAX 创建另一个计算列:

    Column 3 = IF(ISBLANK(table2[Column]), "no data", table2[Column])

    Column 4 = IF(ISBLANK(table2[Column 2]), "no data", table2[Column 2])

  2. 这将为您提供所需的输出。

编辑:-您还可以使用以下公式在单列中做同样的事情

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

     RETURN
         RES

    Column 2 = 
    VAR X = RELATED(table1[LEVEL])
    VAR RES = IF(ISBLANK(X), "no data", X)

    RETURN 
       RES

这也会给你相同的输出。