性格悪い人が優勝

SUMPRODUCT関数について

いつもお世話になっています。
以前こちらでSUMPRODUCT関数を教えていただき大変統計がしやすくなり、
仕事が効率化しました。ありがとうございます。

ところで、SUMPRODUCTだと思うのですが、計算式がうまく組み立てられないのでご質問させていただきます。

A列に部門名、B列に実施日が入力されているエクセルシートがあり、
部門ごとの実施件数を出したいのです。

SUMPRODUCT((A2:A100="○部門")*(CAUNTA(B2:B100)))

としてみましたがうまくいきません。
たぶん *(CAUNTA(B2:B100)) の部分がいけないのだろうとは思うのですが、どう変化させればいいのでしょうか?

関数の選択が間違っているのかもしれない、とは思うのですが、適切なものが分かりません。
ご教授お願いします


 

A 回答 (2件)

まず、


×:CAUNTA
○:COUNTA

で、部門別の件数を数えるだけなら、
=COUNTIF(A2:A100,"○部門")
で十分じゃないですか?

実施日がいない部門があり、実施日が入っているところだけ数えるなら、
=SUMPRODUCT(((A2:A100)="○部門")*((B2:B100)<>""))
でしょう。

この回答への補足

入力間違いですね。失礼いたしました。

>実施日がいない部門があり、実施日が入っているところだけ数える
そうです。ここをお知らせしていなくて失礼いたしました。
汲み取っていただきありがとうございます。

補足日時:2010/09/22 11:59
    • good
    • 0
この回答へのお礼

ありがとうございます!
できました。

「一致しない」は「<>」ということなのですね。

また、宜しくお願いします

お礼日時:2010/09/22 13:24

>たぶん *(CAUNTA(B2:B100)) の部分がいけないのだろうとは思うのですが、どう変化させればいいのでしょうか


 ⇒CAUNTA→COUNTAの誤植という事で無視します。
  SUMPURODUCTは配列数式ですからA列の配列要素と対応しないといけません。
  A2とB2、A3とB3・・・A100とB100となるようにする必要があり、COUNTA(セル範囲)ではA2とCOUNTA(B2:B199)、A3とCOUNTA(B2:B100)となり結果、A列の○部門数×B列の実施日個数となります。
  よって、(A2:A100="○○")*(B2:B100<>"")とか、単一セル対応の関数ならばOKですから(A1:A100="あ")*(LEN(B1:B100)>0))となります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
 (A2:A100="○○")*(B2:B100<>"") 
という方法でできました。

LENは初めて知りました。もう少し学習します!

今後も宜しくお願いします。

お礼日時:2010/09/22 13:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!