计算列中的 DAX

DAX in calculated column

我有如下两个表格。

Table1
CaseId
66787

Table2
PrimaryKey  CaseId  SeqNo   Status   Primary    Code    CodeCareNo
85248       66787   6       Active     N         876    8775568
70728       66787   1       Inactive   N         876    3661794
79008       66787   5       Active     Y         876    3766066
86868       66787   7       Active     Y         876    3287735

Table 1 与 Table2 和 CaseId 中的相关列具有一对多关系。 我需要在我的模型项目中的 Table1 中创建一个计算列。对于 Table1 中的每个 CaseId,计算列应显示类似 (Code) CodeCareNo 的文本(例如:(876) 3766066),其中 Table2 的 Code 和 CodeCareNo 列的值具有 Primary = “ Y”和 Status = “Active”,Seq No 作为 CaseId 的主要活动代码中的最小值。此外,如果 Code 或 CodeCareNo 为空,则计算列应显示空白值。我可以通过以下查询获得所需的结果,但我觉得它有点乱。有人可以帮我简化吗?

=IF("(" & LOOKUPVALUE(Table2[Code], Table2[CaseId], Table1[CaseId], 
Table2[Primary], "Y", Table2[Status], "Active", Table2[SeqNo],     
MINX(FILTER(Table2, ( Table2[Primary] =  "Y" && Table2[Status] = "Active" && 
Table2[CaseId] = Table1[CaseId])), Table2[SeqNo])) & ") " & 
LOOKUPVALUE(Table2[CodeCareNo], Table2[CaseId], Table1[CaseId], 
Table2[Primary], "Y", Table2[Status], "Active", Table2[SeqNo], 
MINX(FILTER(Table2, ( Table2[Primary] =  "Y" && Table2[Status] = "Active" && 
Table2[CaseId] = Table1[CaseId])), Table2[SeqNo])) = "() ", BLANK(), "(" & 
LOOKUPVALUE(Table2[Code], Table2[CaseId], Table1[CaseId], Table2[Primary], 
"Y", Table2[Status], "Active", Table2[SeqNo], MINX(FILTER(Table2, ( 
Table2[Primary] =  "Y" && Table2[Status] = "Active" && Table2[CaseId] = 
Table1[CaseId])), Table2[SeqNo])) & ") " & LOOKUPVALUE(Table2[CodeCareNo], 
Table2[CaseId], Table1[CaseId], Table2[Primary], "Y", Table2[Status], 
"Active", Table2[SeqNo], MINX(FILTER(Table2, ( Table2[Primary] =  "Y" && 
Table2[Status] = "Active" && Table2[CaseId] = Table1[CaseId])), 
Table2[SeqNo])) )

真是一团糟。试试这个公式:

CodeCase = 
    VAR SeqNo = CALCULATE(MIN(Table2[SeqNo]), Table2[Primary] = "Y", Table2[Status] = "Active")
    VAR Code = LOOKUPVALUE(Table2[Code], Table2[SeqNo], SeqNo)
    VAR CodeCareNo = LOOKUPVALUE(Table2[CodeCareNo], Table2[SeqNo], SeqNo)
    RETURN IF(ISBLANK(Code) || ISBLANK(CodeCareNo), BLANK(), "(" & Code & ") " & CodeCareNo)

(我喜欢使用变量来提高计算效率和可读性。)