如何在DAX表中以某些条件从另一个表中获取记录?

时间:2019-02-14 15:05:53

标签: powerbi dax powerquery powerbi-desktop

我有两个桌子。一个提供日期和技术支持的客户ID [表1],另一个提供调查的客户[表2]。问题是调查在服务完成后的几天内发送。因此,我需要从调查表中找到日期最接近的调查ID,并将其带到我的技术支持表中。这是我的数据示例和想要的结果。

表1:

TechSupportDate   CustomerID
01/12/2018          1
02/12/2018          2
05/12/2018          1

表2:

SurveyID SurveyDate   CustomerID   
1001     04/12/2018     1
1002     04/12/2018     2
1003     10/12/2018     1

预期结果:

TechSupportDate    CustomerID SurveyDate     SurveyID
01/12/2018          1         04/12/2018      1001
02/12/2018          2         04/12/2018      1002
05/12/2018          1         10/12/2018      1003

1 个答案:

答案 0 :(得分:0)

将计算出的列添加到表1:

SurveyDate = 
CALCULATE ( 
    MIN ( Table2[SurveyDate] ),
    FILTER ( 
        Table2,
        Table2[SurveyDate] >= Table1[TechSupportDate] && Table2[CustomerID] = Table1[CustomerID]
    )
)

SurveyID = 
CALCULATE ( 
    FIRSTNONBLANK ( Table2[SurveyID], 1 ),
    FILTER ( 
        Table2,
        Table2[SurveyDate] = Table1[SurveyDate] && Table2[CustomerID] = Table1[CustomerID]
    )
)

这是一个可行的PBIX示例:https://excel.solutions/so_54693431/