=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 この新しい IF。すべて適切です。最初の引数は何かをテストし、2 番目は TRUE の場合に必要なもの、3 番目の引数は次の IF です。
IF()
ただし、次の最初の は「AND()
完了」です。つまり、使用されている 3 つの引数がすべて含まれており、数式が終了します。
IF(AND((F2-E2)>0,E2=0),"追加アイテム","追加数量")
- AND((F2-E2)>0,E2=0)がテスト対象です。
- 「追加アイテム」は、TRUE の場合に取得されるものです。
- FALSE の場合、「追加数量」が取得されます。
IF()
次の引数を考慮する場所がありません。数式はここで停止しますが、さらに入力したため、引数が多すぎることが示されます。実際の形式では、次のIF()
引数が 4 番目の引数になり、最後の引数がIF()
5 番目の引数になるため、「引数が多すぎます」というメッセージが表示されます。
これがどのように起こったかについての 1 つの推測は、どこかの式の「テンプレート」を使用していて、各ペアの最初の引用符で囲まれた結果を任意の最適なものに置き換え、次に引用符で囲まれた 2 番目のものを次の句全体に置き換えIF()
、代わりに最初のものを変更して 2 番目のものをそのまま残すというものである可能性があります。しかし、それは単なる (貧弱な?) 推測です。
あなたのAND()
句はまったく問題ありません。私が見る限り、あなたはこれらの句で括弧を省略したり、間違った位置に置いたりしていません。ただし、質問は編集されており、おそらく最初はそうでしたが、今は修正されています (編集内容を理解しようとすると、そうではないように見えますが)。「F2-E2」の部分を囲む () を削除することもできますが、その方が読みやすくなると感じるかもしれません。または、上司かもしれません。あるいは、括弧を省略すると数式がまったく異なる場合があるため、誰かがあなたに、厳密に必要以上に括弧を使用するように教えた可能性があります。(奇妙なことに、関数は括弧で囲まれた範囲で機能するが、括弧なしでは明らかな理由もなく失敗することがあります。) 他の人が要求するように括弧を削除したい場合、ここで行っていることで括弧が必要になることは絶対にありません。