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 )
我在 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] - 都是无效的。
知道如何处理这个问题吗?你甚至可以为我提供一个完全不使用变量的解决方案。我对任何解决方案都满意。
类似于
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 )