DAX 语法 - if 与 switch

DAX Syntax - if versus switch

需要有关正确语法的帮助。我需要根据 3 列(年、服务年限、终止)确定服务年限是否介于以下标准之间或终止列是否有日期。

IF(["#YearsofService"]=>2,"2+ Years" else "Less than 2 Years") else Terminate(has a date) is not null. 这将用于显示条件文本的新列。

也试过Switch功能

=SWITCH(TRUE() [#"#YearsofService"] >=2,"2 + Years" & [#"#YearsofService"] <2, "Less Than 2 Years", isblank([Term Date]), "Termed" )

也试过:

IF(ISBLANK([Term Date])=false, "Termed",IF([#"#YearsofService"] >=2,"2 + Years","Less Than 2 Years"))

但不喜欢语句的 If 部分

在您的示例中,您只使用了两个提到的列(服务年限和终止)。我想声明应该是这样的:

Result = IF(ISBLANK([Term Date]);IF([#"#YearsofService"]<2;"Less than 2 years";"More than 2 years");"Termed")

我认为 SWITCH TRUE 是满足这种多重测试要求的最佳解决方案。 TRUE 之后的测试顺序很关键——DAX 将在第一个 TRUE 结果出现后停止评估。所以这是我的尝试:

=SWITCH(TRUE() , NOT(ISBLANK([Term Date])), "Termed" , [#YearsofService] >=2,"2 + Years" , [#YearsofService] <2, "Less Than 2 Years" )