簡體   English   中英

Power BI - DAX - 表變量 - 使用列進行進一步計算

[英]Power BI - DAX - table variable - use column for further computation

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

我有一個棘手的情況,我試圖使用從表變量生成的列名。

表 1:源表

在此處輸入圖片說明

表 2:參考表

在此處輸入圖片說明

我需要根據 ReferenceTable 中的相應列在 SourceTable 中開發一個名為 EmploymentStatus 的計算列。 但我只需要來自 ReferenceTable 的 EmploymentStatus 值,以獲得給定 EmployeeEmail 的最大 InternalID。

例如,對於 SourceTable 中的電子郵件 xyz.gmail.com,我需要將 EmploymentStatus(計算列)從 ReferenceTable 設為“Active”,因為“Active”具有兩個可用 InternalID 值(17、15)中的最大值

我嘗試了以下代碼(SourceTable 中的計算列):

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

我意識到我不能使用從表變量生成的列。

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

關於如何處理這個問題的任何想法? 您甚至可以為我提供一個完全不使用變量的解決方案。 我可以接受任何解決方案。

此處類似,您可以找到每封電子郵件的最大 ID 並查找該 ID 的狀態。

為便於閱讀而縮短表名和列名:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM