2017-08-17 84 views
-1

如何在PowerQuery上覆制這個?PowerQuery如果有多個條件AND OR

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 

我敢肯定它的倍數或聲明的原因。
我不認爲這是因爲FALSE的,順便說一句。

謝謝!

回答

1

如果您不確定「和」和「或」的優先級,最好使用圓括號。

事實上,「和」是先評估,然後是「或」的。 所以「a和b或c和d」等同於「(a和b)或(c和d)」。 與「a和(b或c)和d」不符,我明白 - 您正在尋找。 如果是這樣,您需要在「或」的集合周圍添加括號。

假設您有邏輯值,那麼「FALSE」將不起作用:您需要false不帶引號且全部小寫。

順便說一下,「似乎沒有正常工作」並不完全是解釋發生了什麼問題的首選方式。我想你幾乎可以得到所有的1和幾乎沒有0的?

+0

謝謝,我最後使用了括號,它都很好 –