Power BI - DAX - table 变量 - 使用列进行进一步计算

Power BI - DAX - table variable - use column for further computation

我在 Power BI Desktop 中使用 DAX 语言。

我有一个棘手的情况,我试图使用从 table 变量生成的列名。

Table 1: 来源Table

Table 2:参考Table

我需要根据 ReferenceTable 中的相应列在 SourceTable 中开发一个名为 EmploymentStatus 的计算列。但对于给定 EmployeeEmail 的最大 InternalID,我只需要 ReferenceTable 中的 EmploymentStatus 值。

例如,对于 SourceTable 中的电子邮件 xyz.gmail.com,我需要 ReferenceTable 中的 EmploymentStatus(计算列)作为 'Active',因为 'Active' 具有两个可用 InternalID 值 (17, 15) 中的 最大值

我尝试了以下代码(源中的计算列Table):

EmploymentStatus_SourceTable_CalculatedColumn =
VAR tabl1 =
    SUMMARIZE (
        ReferenceTable,
        ReferenceTable[EmployeeEmail],
        "MaxInteralID", MAX ( ReferenceTable[InternalID] )
    )
VAR tabl2 =
    FILTER (
        ReferenceTable,
        ReferenceTable[InternalID] IN VALUES ( tabl1[MaxInteralID] )
    )
VAR NewCol =
    LOOKUPVALUE (
        tabl2[EmploymentStatus],
        tabl2[EmployeeEmail], SourceTable[EmployeeEmail]
    )
RETURN
    NewCol

我意识到我无法使用从 table 变量生成的列。

例如,tabl1[MaxInteralID]、tabl2[EmployeeStatus]、tabl2[EmployeeEmail] - 都是无效的。

知道如何处理这个问题吗?你甚至可以为我提供一个完全不使用变量的解决方案。我对任何解决方案都满意。

类似于,您可以找到每封电子邮件的最大 ID 并查找该 ID 的状态。

Table 并为了便于阅读缩短了列名:

CalcCol =
VAR Email = Source[Email]
VAR MaxID = CALCULATE ( MAX ( Ref[ID] ), Ref[Email] = Email )
RETURN
    LOOKUPVALUE ( Ref[Status], Ref[Email], Email, Ref[ID], MaxID )