我为此一直在挣扎,希望您能帮助我。
所以我有一个包含员工登录会话的表,其中包含以下相关列: [员工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])
到目前为止,我不相信我能获得理想的结果,您是否有任何提示应如何解决呢?
预先感谢, 干杯!
答案 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 +带有几列的行表,因此我想简化此公式,使用过滤器是否可以?
我的意思是,它们是顺序应用(逐步缩小)还是计算一次应用所有过滤器?