我一直在为这件事挣扎,希望你能帮我。
因此,我有一个带有employee Login会话的表,其中包含以下相关列:Employee ID、LoginTime、LogoutTime、Status
以及另一个表,该表具有意外事件ID及其各自的确认DateTime,以及员工ID正在处理的表。
现在,我想确认这名雇员在接受这一事件时所处的LoginStatus。
所以,我在想一些类似的事情:
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+行表,所以我希望减轻这个公式,这是否可以使用过滤器呢?
我的意思是,它们是按顺序应用(缩小每一步的范围)还是计算一次应用所有过滤器?
发布于 2018-09-26 10:16:04
请尽量提供一个MCVE,因为这将帮助别人帮助你!
如果将新计算列添加到事件表中,则应该能够使用以下内容确定员工状态:
Employee Status =
CALCULATE (
MAX ( 'Login'[Status] ),
FILTER (
'Login',
AND('Incident'[AckDateTime] > 'Login'[LoginTime],
'Incident'[AckDateTime] <= 'Login'[LogoutTime]
)
)
)https://stackoverflow.com/questions/52497118
复制相似问题