DAX-具有多个表和列的多个过滤器

时间:2018-09-25 11:28:16

标签: filtering powerbi dax

我为此一直在挣扎,希望您能帮助我。

所以我有一个包含员工登录会话的表,其中包含以下相关列: [员工ID],[LoginTime],[LogoutTime],[状态]

和另一个具有事件 ID及其相应的 [确认日期时间] 的表,其中还有 [Employee ID] < / em> 正在处理。

现在,我正在寻找员工接受事件时在哪个登录[状态]

因此,我正在考虑以下方面的内容:

Calculate(Login[Status];
    Filter(Login;Login[Employee ID]=Incident[Employee ID];
    Filter(Login;
       and(Login[LoginTime<=Incident[AckDateTime];Login[LogoutTime>=Incident[AckDateTime])

到目前为止,我不相信我能获得理想的结果,您是否有任何提示应如何解决呢?

预先感谢, 干杯!

2 个答案:

答案 0 :(得分:0)

请尝试始终提供MCVE,因为这会帮助其他人帮助您!

如果将 新计算列 添加到事件表中,您应该能够通过以下方式确定您的员工身份:< / p>

Employee Status =
    CALCULATE (
        MAX ( 'Login'[Status] ),
        FILTER (
            'Login',
            AND('Incident'[AckDateTime] > 'Login'[LoginTime],
                'Incident'[AckDateTime] <= 'Login'[LogoutTime]
            )
        )
    )

答案 1 :(得分:0)

感谢您的回复和道歉,这是我在这里的第一个问题。

登录表应如下所示:

Employee ID LoginTime LogoutTime Status Colossus 26/09/2018 13:05 26/09/2018 13:25 Available Nightcrawler 26/09/2018 11:30 26/09/2018 12:10 Research

还有事件,如下:

Incident ID Employee ID AckDateTime 12456324 Colossus 26/09/2018 13:24 45754121 Cyclops 26/09/2018 12:00 78452135 Nightcrawler 26/09/2018 11:15

我尝试了其他类似的公式(至少对我来说是有意义的),但PowerBI却因缺乏足够的内存问题而崩溃。 建议的公式也是如此。

我正在使用200k +带有几列的行表,因此我想简化此公式,使用过滤器是否可以?

我的意思是,它们是顺序应用(逐步缩小)还是计算一次应用所有过滤器?