• ベストアンサー
  • 暇なときにでも

EXCEL・複数条件がある場合のCOUNTIFの書き方

  • 質問No.2146300
  • 閲覧数137367
  • ありがとう数178
  • 気になる数5
  • 回答数5
  • コメント数0

お礼率 82% (268/326)

エクセルである条件に合致する件数を調べたい場合、普通COUNTIFを使うと思います。これだと普通1つの条件しか書けないと思います。

というか書き方が分からないので、仕方がないのでたくさん並べて+で足すなどの苦肉の策で対処しています。

が、「ある条件」が5個もあるので長くなり汚く、いかにも素人っぽいので何とかしたいと思っています。

VBAで関数を自作することは出来るので、書いてもいいのですが、その前にこのくらいエクセルの関数で何とかできるはずだと思うので、この辺のことが詳しい方に教えていただきたいと思っています。

よろしくお願いします。

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

  • 回答No.1
  • ベストアンサー

ベストアンサー率 39% (7415/18945)

OR条件の場合
=COUNTIF(範囲,条件1)+COUNTIF(範囲,条件2)
AND条件でも同じセルの数値From-Toの場合
=COUNTIF(範囲,条件1)-COUNTIF(範囲,条件2)
※結果の大きい方が条件1になります。例 =COUNTIF(A1:A10,">=1")-COUNTIF(A1:A10,">10")

上記以外の場合
方法1.SUMPRODUCT関数を使う
=SUMPRODUCT((条件1)*(条件2)*....*(条件N))
※条件は(A1:A10>=1)とかISNUMBER(A1:A10)とかでTRUE/FALSEの結果が表示されるものならOK
※条件に使う範囲はずれていてもかまいませんが、範囲の行列の数(セル数)は同じにしなければいけません。

方法2.配列数式を使う
=SUM(IF((条件1)*(条件2)*...*(条件N),1,0))
と入力してCtrl+Shift+Enterで確定する。

方法3.DCOUNT関数を使う
項目名1 項目名2
条件1  条件2
のような条件範囲を作成した上でDCOUNT(カウントする項目の範囲,データの全範囲、条件範囲)で検索できます。
※詳細はヘルプをご覧ください。
お礼コメント
arakororin

お礼率 82% (268/326)

いろいろあるのですね。
条件の書き方を工夫すればナントカできるようですね。
ちょっと慣れが必要みたいですね。
大変参考になりました。ありがとうございました。
投稿日時:2006/05/14 12:54

その他の回答 (全4件)

  • 回答No.5

ベストアンサー率 28% (4493/16005)

毎日このOKWAVEに、1つ2つ、複数条件の件数カウントや、該当分集計の質問が(いやというほど)出ます。
解法としては
(1)SUMPRODUCT関数
(2)配列数式
(3)Dsum関数・Dcount関数
(4)PivotTable
(5)VBAで
などの方法がありそうですが、(3)が人気がなく、配列数式も理解されない場合が多いようです(私は回答例が多いですが)。
Officeソフトのカテゴリを登録し質問を1週間でも読んでみてください。
過去の質問の検索語としては「複数条件」や「Sumproduct」「配列数式」でしょうか。
お礼コメント
arakororin

お礼率 82% (268/326)

いろいろあるのですね。
参考になりました。ありがとうございました。
投稿日時:2006/05/14 12:55
  • 回答No.4
》 …を調べたい場合、普通COUNTIFを使うと思います。

それを「普通」と考えるのは貴方の思い込みです。


》 これだと普通1つの条件しか書けないと思います。

それも貴方の思い込み。COUNTIFを複数使えるケースもあります。
補足コメント
arakororin

お礼率 82% (268/326)

そうですか。
もしあなたに質問に答える能力があるならば
揚げ足を取って終わりにするのではなく
回答をしていただきたいです。
投稿日時:2006/05/14 09:43
  • 回答No.3

ベストアンサー率 31% (103/329)

私なら条件を5つのセルに入力し、条件の分だけ範囲指定した状態で、
=COUNTIF(範囲,条件の入ったセル範囲)
と入力した後、SHIFT+CTRLキーを押しながら、
ENTERで、並列として答えを出しますが、
いかがでしょうか?

{=COUNTIF(範囲,条件の入ったセル範囲)}

となります。
お礼コメント
arakororin

お礼率 82% (268/326)

「うわ、すげー」とか思いました。
意味がよく分かりませんけど、特殊な使い方があるのですね。
セル範囲を名前定義した場合の名前を指定しても可能だったので、
結構便利そうですね。
大変参考になりました。ありがとうございました。

これってセルが飛び地になっている場合って、
名前定義をしてその名前を指定しない限り無理ですか?
もしこれが出来ればもっと便利なんですけど。

もしよろしければこちらもお願いします。
投稿日時:2006/05/13 14:45
  • 回答No.2

ベストアンサー率 43% (2140/4926)

>VBAで関数を自作することは出来るので

なら、例を挙げるまでもないかなと・・・・

  sumproduct関数 で()内に複数検索条件を組み入れて *
アスタリスクで演算
()内は
 (検索範囲 演算子 検索条件)*(検索範囲 演算子 検索条件)*(・・・・・・・以下同左
           ↑↑↑↑
           セルアドレス指定の方が汎用性あり
           そのセルに 検索ワードを入力するだけだから。
お礼コメント
arakororin

お礼率 82% (268/326)

なるほど。
ちょっと進みました。
ありがとうございました。
投稿日時:2006/05/14 13:12
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ