dポイントプレゼントキャンペーン実施中!

A  B    C
1月 北海道 
1月 北海道 3150
2月 北海道 2500
1月 宮城  4300
2月 宮城  
1月 愛知  3150
のような表があり,A列が1月かつB列が北海道かつC列
が空白以外のものをカウントしたい(C列の数値の合計を出すのではなく何件当てはまるか数を数えるのが目的)のですが,
SUMIF(配列関数?)を使ってD列は全て1にして上記の三つの条件に当てはまる行のD列の1を足して,該当件数をカウントする.という方法でできないかと思ったのですが,
数式の立て方がいまいち分からずエラー頻発で困っております.
他に簡単な方法があれば何でもいいので
EXCEL関数に詳しい方どうか教えてください.
よろしくお願いします.

A 回答 (4件)

この類の質問は多いですが、


エクセルで(2項目以上)条件付き合計や件数は
(1)SUMPRODUCT
(2)DCOUNT、DSUM
(3)配列数式
(4)VBA
(5)ピボットテーブル
などの解法があります。
人気はないが(2)でやります。
A1;C10
月府県量
1月北海道
1月北海道3150
2月北海道2500
1月宮城4300
1月宮城
2月愛知3150
2月北海道350
1月北海道
1月北海道200
(条件)E1:F2
月府県
1月北海道
「量」条件<>""が不要なのは、DCOUNTが、数値が入っているセルを数えるという、条件らしきものを本来背負っているため。
(式)
=DCOUNT(A1:C10,C1,E1:F2)
結果は2です。
配列数式では
=SUM(IF((A2:A10="1月")*(B2:B10="北海道")*(C2:C10<>""),1,0))
といれSHIFT+CTRL+ENTERを同時におして、結果2になりました。
    • good
    • 1

カウントのためにD列を使っても良いのなら、IFとANDの


組み合わせはどうですか?

1行目を空欄にして、条件を入れる欄にします。
D列の2行目に
=IF(AND(A2=$A$1,B2=$B$1,C2<>""),1,0)
と打って表の行数だけフィルしておます。

空欄だった1行目に条件を入れます。
A1=1月、B1=北海道
と打ち込めば1月-北海道-空白の条件に
当てはまる行のD列には1、それ以外は0が出ます。
その状態でD列の合計を出す。

これならkingyossyさんが当初にイメージしていた方法に
近いと思いますし、1行目の条件欄を打ち変えるだけで
他の条件での件数をカウントできます。
ただし、ひとつの列での複数条件は指定できませんが。
    • good
    • 0

オートフィルを使った方が良いと思います


まず 1行目に1行挿入して
A列とB列を全て選んで
データ->フィルター->オートフィルターとします

C1に =SUBTOTAL(2,C2:C65535)
と入れて
後は▼で選んだ分の個数が求められます

D1に =SUBTOTAL(9,C2:C65535)
とすれば 合計も求められます
    • good
    • 0

こんばんは。



SUMPRODUCT関数でできると思います。

=SUMPRODUCT((A1:A6="1月")*(B1:B6="北海道")*(C1:C6<>""))

で、どうでしょうか?
    • good
    • 1

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