この式に何か間違いがありますか?

この式に何か間違いがありますか?

この式の何が間違っているのでしょうか:

=IF(COUNT(C8:D8)=2,C8*D8,””)

結果セルに入ります#NAME?。D8 が空白の場合に空白セルを実現するためにこの数式を使用しています。引用符の使用に問題があると思います。

答え1

問題は、この書き方では D8 を空白にできないということだと思います。D8 が空白の場合、数式では C8 を掛ける必要がありますが、D8 は数値ではないため、どうすればよいかわかりません。最終目標についてあまり詳しくなく、回答しているマシンに Excel がインストールされているわけでもありませんが、次のような数式で目的の結果が得られるようです。

=IF(D8="","",C8*D8)

または

IF(COUNTBLANK(D8)=0,C8*D8,"")

答え2

この数式で問題となるのは、引用符に使用している文字だけです。これは引用符ではありません (CODE で調べて文字コードを確認してください)。実際の引用符を使用すると、数式は期待どおりに動作します。空白を掛けてもエラーは発生せず、空白はゼロとして扱われます。COUNT は空白を無視するため、COUNT 式は FALSE となり、Excel はそれらの記号をどう処理すればよいかわかりません。

その記号がキーボードから生成されたものである場合、Excel がスマート引用符を使用するように設定されていて、2 つのスマート閉じ引用符が挿入されているなど、何か他のことが起こっています。これらは、通常の文字として扱われないプレースホルダーとして高位文字を使用します。

お気づきかもしれませんが、数式内の記号は右に傾いています。通常の引用符は、mael' の回答のように垂直です。その回答の代替数式には何の問題もありませんが、キーボードが引用符を生成しない場合は、これも失敗します。

答え3

数式で#NAME?引用符が使用されているため、エラーが発生しています。””

Excel は、#NAME?数式で使用されている予約語 (関数名/演算子) のいずれかを認識できない場合にエラーを返します。

したがって、最初のステップでは、コマンド構文(コマンドパターン)を修正し、数式を次のように記述する必要があります。

=IF(COUNT(C8:D8)=2,C8*D8,"")

注意

  • この数式は、if と whenが返される場合C8に乗算されます。セルのいずれかまたは両方が空白の場合は、代わりに BLANK が返されます。D8COUNT(C8:D8)2

さて、2番目の部分について考えてみましょう。D8空白のときに空白のセルを実現するために、この数式を使用しています。

セルが空白かどうかをテストするには、D8これを使用できます。

=IF(D8<>"",C8*D8,"")

または、@mael によって示された式も同様です。

さらに、セル( )のいずれも空白でない場合、C8を乗算したい場合は、これを使用します。 D8Count is 2C8, D8

=IF(OR(C8<>"",D8<>""),IF(COUNT(C8:D8)=2,C8*D8,""))

注意

  • いずれかのセル ( C8, D8) が空白の場合、数式は BLANK を返し、両方のセルが空白の場合は を返しますFALSE

またはこれも使用できます。

=IF(SUMPRODUCT(--(C8:D8<>""))<>0,IF(COUNT(C8:D8)=2,C8*D8,""))

関連情報