PowerQuery if 具有多个条件 AND OR



如何在PowerQuery上复制它?

if(ATC[WorkitemAssetState]=64,
if(ATC[WorkitemIsClosed]=FALSE,
if(ATC[WorkitemIsDeleted]=FALSE,
if(ATC[M_WorkitemStatus]IN{"Reviewing","Available","Research","Progressing","Testing","Resolved","<none>"},
if(ATC[M_DefectResolutionId]IN {"-","<Unknown>","Resolution:1","Resolution:7"},1,-1)
,0)
,0)
,0)
,0)

我已经完成了以下操作,但它似乎无法正常工作:

if [WorkitemAssetState]=64 and 
[WorkitemIsClosed]="FALSE" and
[WorkitemIsDeleted]="FALSE" and
[M_WorkitemStatus]="Reviewing" or [M_WorkitemStatus]= "Available" or [M_WorkitemStatus]= "Research" or [M_WorkitemStatus] = "Progressing" or [M_WorkitemStatus] = "Testing" or [M_WorkitemStatus] = "Resolved" or [M_WorkitemStatus] = "<none>" or [M_WorkitemStatus] = "<none>" or [M_WorkitemStatus] = "-" and
[M_DefectResolutionId]= "-" or [M_DefectResolutionId] = "<Unknown>" or [M_DefectResolutionId] = "Resolution:1" or[M_DefectResolutionId] = "Resolution:7" then 1 else 0

我很确定这是因为多个OR语句。
我不认为这是因为FALSE,顺便说一句。

谢谢!!

如果您不确定"and"和"or"的优先级,最好使用括号。

事实上,首先评估">

和",然后评估"或"。 所以"a和b或c和d"等价于"(a和b(或(c和d("。 不是"a 和 (b 或 c( 和 d",我明白 - 你正在寻找。 如果是这样,您需要在"or"的集合周围添加括号。

假设你有逻辑值,那么"FALSE"将不起作用:你需要不带引号的false,并且全部小写。

顺便说一下,"似乎无法正常工作"并不是解释问题所在的首选方式。我想你得到(几乎(所有的 1 和(几乎(没有 0?

最新更新