首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DAX -具有多个表和列的多个过滤器

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

Stack Overflow用户
提问于 2018-09-25 11:28:15
回答 1查看 8.5K关注 0票数 1

我一直在为这件事挣扎,希望你能帮我。

因此,我有一个带有employee Login会话的表,其中包含以下相关列:Employee ID、LoginTime、LogoutTime、Status

以及另一个表,该表具有意外事件ID及其各自的确认DateTime,以及员工ID正在处理的表。

现在,我想确认这名雇员在接受这一事件时所处的LoginStatus

所以,我在想一些类似的事情:

代码语言:javascript
复制
Calculate(Login[Status];
    Filter(Login;Login[Employee ID]=Incident[Employee ID];
    Filter(Login;
       and(Login[LoginTime<=Incident[AckDateTime];Login[LogoutTime>=Incident[AckDateTime])

到目前为止,我不相信我得到了预期的结果,你有什么建议,我应该如何做这件事?

提前谢谢,干杯!

编辑:谢谢你的回复和道歉,这是我的第一个问题。

登录表应该如下所示:

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 one,如下所示:

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+行表,所以我希望减轻这个公式,这是否可以使用过滤器呢?

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

EN

回答 1

Stack Overflow用户

发布于 2018-09-26 10:16:04

请尽量提供一个MCVE,因为这将帮助别人帮助你!

如果将新计算列添加到事件表中,则应该能够使用以下内容确定员工状态:

代码语言:javascript
复制
Employee Status =
    CALCULATE (
        MAX ( 'Login'[Status] ),
        FILTER (
            'Login',
            AND('Incident'[AckDateTime] > 'Login'[LoginTime],
                'Incident'[AckDateTime] <= 'Login'[LogoutTime]
            )
        )
    )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52497118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档