=IF((F2-E2)=0,"No mismatch",IF(AND((F2-E2)>0,E2=0),"Extra Item","Extra Qty"),IF(AND((F2-E2)<0,F2>0),"Short Qty","Not received"))
它給了我太多參數的錯誤
答案1
您在公式末尾缺少右括號,因為AND(...), ...)
子句中有一個額外的右括號。
'fixed
=IF((F2-E2)=0,"No mismatch",IF((F2-E2)>0,"Extra Qty",IF(AND(F2-E2<0,F2<E2),"Short Qty","Not received")))
'improved
=IF((F2-E2)=0,"No mismatch",IF((F2-E2)>0,"Extra Qty",IF(F2<E2,"Short Qty","Not received")))
'check for blanks added
=IF(COUNT(E2:F2)<>2,"Not received",IF(F2-E2=0,"No mismatch",IF(F2-E2>0,"Extra Qty","Short Qty")))
'alternate
=IF(COUNT(E2:F2)<>2,"Not received", CHOOSE(SIGN(F2-E2)+2,"Short Qty","No mismatch", "Extra Qty"))
盡量減少括號的使用,僅在絕對必要的情況下使用。
答案2
除了任何其他問題之外,您沒有正確嵌套“IF()”。這似乎是一個概念問題,但很容易解決。
例如,第一個IF()
遵循傳統的嵌套IF()'s
形式:IF this, then THAT, ELSE this new IF。都好。第一個參數測試某些東西,第二個參數是你想要的(如果它是 TRUE),第三個參數是下一個 IF。
接下來IF()
,第一個帶有 an 的參數AND()
是「完整的」:它使用了所有三個參數,從而結束了你的公式:
IF(AND((F2-E2)>0,E2=0),"額外項目","額外數量")
- AND((F2-E2)>0,E2=0) 是正在測試的內容。
- 如果為真,您將獲得“額外物品”。
- 如果為 FALSE,您將獲得“額外數量”。
沒有地方IF()
可以考慮下一步。公式到此為止,但您輸入了更多內容,因此它告訴您太多了。事物的實際形式使下一個成為IF()
第四個參數,最後一個IF()
成為第五個參數,因此它給出了「參數太多」的訊息。
關於它可能是如何發生的一個猜測是,您可能正在使用某個地方的公式“模板”,並且應該將引號中的結果替換為您最喜歡的每對中的第一個結果,然後替換第二個結果與整個下一個IF()
子句放在引號中,但改變了第一個子句,而使第二個子句保持不變。但這只是一個(糟糕的?)猜測。
你的AND()
條款完全沒問題。正如我所看到的,你沒有遺漏任何括號或在這些子句中放錯它們的位置——儘管問題已經被編輯過,也許最初是這樣,但現在已經修復了(儘管當我試圖弄清楚時,它看起來並非如此)編輯)。您可以在「F2-E2」部分周圍刪除 (),但您可能會覺得這些會讓您更容易閱讀。或者也許是你的老闆。或者,由於如果省略括號,公式有時可能會變得非常不同,因此有人可能會教您使用超出嚴格必要範圍的公式。 (奇怪的是,有時一個函數可能會在括號中的某個範圍內工作,但如果沒有它們,就會失敗,沒有明顯的原因。)如果您想像其他人一樣推動刪除它們,那麼您在這裡所做的一切絕對不會讓它們變得必要。