• 締切済み

SUMPRODUCT関数について

A列に氏名、B列に性別(MかF)、D列に雇用形態(1~5の数字で入力)しています。 雇用形態は、1=正社員、2=契約社員・・・といった具合で、D列に数字を入れればC列に 雇用形態の名称が反映されるようにしています。 男性でかつ正社員の人数を求めたいのですが、どうしても結果が0になってしまいます。 計算式は =SUMPRODUCT((B5:B7="M")*(D5:D7="1")) で入力しています。 D列に数字を入れればC列に雇用形態の名称が反映されるようにしていることが問題でしょうか? どなたかご教示下さい。 よろしくお願いします。

みんなの回答

  • foomufoomu
  • ベストアンサー率36% (1018/2761)
回答No.3

SUMPRODUCTの使い方がめちゃくちゃです。 掛け算する配列は*でなく、カンマで区切らないといけないし、配列に計算式は使えません。 この場合は、配列演算を使って {=SUM((B5:B7="M")*(D5:D7="1"))} とすれば、計算できます。 配列演算なので、入力方法が特殊です。 はじめに、上式の両端の{ }を除いた部分を数式バーに書き、最後にCTRL+SHIFT+ENTERを押すと自動的に両端の中かっこが入ります。

すると、全ての回答が全文表示されます。
  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.2

その計算では   TRUE*TRUE   FALSE*TRUE などのような計算になり、必ず0が返ってきます。  =SUMPRODUCT((B5:B7="M")*1,(D5:D7="1")*1) のように比較結果を数値に置き換えてから計算するようにすると意図せぬ計算にならずに済みます。 …あ。あと正社員か契約社員かを示す番号が文字列ならそのままでも良いんでしょうけど 数値なら  (D5:D7=1) にしておきましょう。 Excel2007以降に追加されたCOUNTIFS関数が使えるならそっちのほうが簡単で便利なんですけどねえ。

すると、全ての回答が全文表示されます。
noname#203218
noname#203218
回答No.1

=SUMPRODUCT((B5:B7="M")*(D5:D7=1)) 雇用形態は数値判断するようになっていますが、ダブルクォーテーションを入れてしまった為に、文字列判断するように指定しています。それにより、結果が0人となっているのでしょう。

すると、全ての回答が全文表示されます。

関連するQ&A