• ベストアンサー

エクセルで複数条件当てはまる対象の個数を数えるには?

 countifは、一つの検索条件でしか数えられないと思いますが、複数の条件に該当するセルの個数を数える関数はあるのでしょうか?  2万件程度のデータから検索する必要がありまして、よろしくお願いします。  趣旨は、以下のとおりです。 ---------------  種別1 種別2  a    甲 b    乙 b    甲 c    甲 c    丙 a    乙 ----------------  という一覧表から ----------------   甲 乙 丙 a  1  1  0 b  1  1  0 c  1  0  1 ----------------  のような個数の一覧表を作成したいということです。

質問者が選んだベストアンサー

  • ベストアンサー
  • jindon
  • ベストアンサー率43% (50/116)
回答No.4

データがA2:B7 までとします。 D1に甲, E1に乙, F1に丙 C2にa, C3にb, C4にc D2に =SUMPRODUCT(($A$2:$A$7=$C2)*($B$2:$B$7=D$1)) として、右、下方向にフィルでは?

0121tatsumi
質問者

お礼

ありがとうございました。今回、私が求めていたものに最もぴったりの回答でした。とても単純で、わかりやすいです。

その他の回答 (4)

  • miwaki
  • ベストアンサー率36% (14/38)
回答No.5

私がよく使っているCOUTIFで複数条件を検索する方法をご紹介します。(下の皆さんと違う方法です) 検索用の列を新たに設けます。種別1と種別2がA列とB列としてC列を検索用の列として以下の関数を入れます。 =A2&B2 これをコピーしデータのある限り下に貼り付けます。 次にカウントが入る一覧表をD1から始まると仮定し、セルE2に下の関数をいれます。 =COUNTIF(C:C,$D2&E$1) これをE2から始まる全てのデータ部に貼り付けます。 お試しください。

0121tatsumi
質問者

お礼

ありがとうございました。こんな方法もあるのですね。今後、また参考にさせていただきます。

回答No.3

いままで回答が出てますとおり、これはピボットテーブルが簡単で一般的な方法ですが、データに変更があった際、「更新」という作業が必要ですので、再計算のいらない配列数式で行うことも一法です。 種別1のデータはA2からA7まで、種別2のデータはB2からB7まで入っていることし、C列は空きセルである(ダミー)とします。 出力結果は以下のセル番地とします。 ----------------   甲  乙  丙 a B10 C10 D10 b B11 C11 D11 c B12 C12 D12 ---------------- B10に以下の式を入力します。 =COUNT(IF(($A$2:$A$7=$A10)*($B$2:$B$7=B$9),$C$2:$C$7,"")) ここまで入力したら、SHIFT+CTRLを押してENTERキーを押します。 (数式バーに{}で囲まれた式となる) これをフィルハンドルでB12からD12までフィルします。 C列はダミーで、数字もしくは空きセルであればかまいませんが、文字が入っていると正しいカウントはしてくれません。

0121tatsumi
質問者

お礼

ありがとうございました。色々な方法があるものですね。関数の内容をじっくり検討してみます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

私も#1のご回答と同じく「ピボットテーブル」を使うことをお勧めします。 ただし、下記でも出来ますと言うことで、記します。 >3.「範囲」に「種別1~件数」までのすべての行を選択して次へ。 は,種別1、種別2の2列だけを範囲指定してやれば良い。 >でも種別2の右に「件数」列を設け、すべてに1を入れておいてください。 は、「設けなくても」旨く行きました。 >、「行」に種別1を、「列」に種別2を、「データアイテム」に件数をドラッグ。 私の場合は、「行」に「種別1」を、「列」に「種別2」を、「データアイテム」に、「種別2」(種別1でもよいと思う)をD&Dする。すると「データの個数」になってくれる。 (データ例) 種別1 種別2 a 甲 a 乙 s 甲 d 乙 f 乙 s 甲 a 丙 (結果) データの個数 : 種別2 種別2 種別1 甲 乙 丙 総計 a 1 1 1 3 d 1 1 f 1 1 s 2 2 総計 3 3 1 7

0121tatsumi
質問者

お礼

ありがとうございました。ピボットテーブルは、奥が深そうですね。勉強になります。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

ピボットテーブルを使います。 でも種別2の右に「件数」列を設け、すべてに1を入れておいてください。 Excel2000の場合で説明します。 1.メニューのデータ>ピボット・・(略)をクリック 2.EXCELのリスト(デフォルト)で次へ。 3.「範囲」に「種別1~件数」までのすべての行を選択して次へ。 4.新規ワークシートで完了。 5.ピボットテーブルウィンドウが表示されるので、「行」に種別1を、「列」に種別2を、「データアイテム」に件数をドラッグ。 縦横計も表示されます。

0121tatsumi
質問者

お礼

ありがとうございました。「ピボットテーブル」という機能があるということだけは知っていたのですが、具体的な使い方は今回初めて知りました。参考にさせていただきます。

関連するQ&A