将关联SQL查询转换为DAX:生成Emails表RespondedStatus计算列
DAX计算列实现RespondedStatus逻辑
可以用以下DAX表达式创建计算列,实现你需要的判断逻辑:
RespondedStatus = VAR CurrentProject = Emails[Project] VAR CurrentSubject = Emails[Subject] VAR CurrentReceivedDate = Emails[ReceivedDate] VAR RelatedReplies = CALCULATE( COUNTROWS(Emails), FILTER( Emails, Emails[Project] = CurrentProject && Emails[ReceivedDate] > CurrentReceivedDate && (LEFT(Emails[Subject], 3) = "RE:" || LEFT(Emails[Subject], 3) = "FW:") && CONTAINSSTRING(Emails[Subject], CurrentSubject) ) ) RETURN IF(RelatedReplies > 0, "Yes", "No")
逻辑说明
- 定义三个变量分别存储当前行的Project、Subject和ReceivedDate,简化后续引用
- 通过
CALCULATE+FILTER组合筛选符合条件的邮件,需同时满足:- 属于同一个项目
- 接收时间晚于当前邮件
- 主题以
RE:或FW:开头(若需不区分大小写,可结合UPPER/LOWER函数转换后判断) - 主题包含当前邮件的主题内容
- 最后根据筛选到的邮件数量是否大于0,返回对应的状态值
大小写兼容版本(可选)
如果需要忽略主题前缀的大小写差异,可修改前缀判断逻辑:
RespondedStatus = VAR CurrentProject = Emails[Project] VAR CurrentSubject = Emails[Subject] VAR CurrentReceivedDate = Emails[ReceivedDate] VAR RelatedReplies = CALCULATE( COUNTROWS(Emails), FILTER( Emails, Emails[Project] = CurrentProject && Emails[ReceivedDate] > CurrentReceivedDate && (UPPER(LEFT(Emails[Subject], 3)) = "RE:" || UPPER(LEFT(Emails[Subject], 3)) = "FW:") && CONTAINSSTRING(Emails[Subject], CurrentSubject) ) ) RETURN IF(RelatedReplies > 0, "Yes", "No")
内容的提问来源于stack exchange,提问作者Xander Kage
相关产品推荐
相关产品推荐

