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

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

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

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

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

よろしくお願いします。

A 回答 (5件)

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(カウントする項目の範囲,データの全範囲、条件範囲)で検索できます。
※詳細はヘルプをご覧ください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/05/14 12:54

毎日このOKWAVEに、1つ2つ、複数条件の件数カウントや、該当分集計の質問が(いやというほど)出ます。


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

いろいろあるのですね。
参考になりました。ありがとうございました。

お礼日時:2006/05/14 12:55

》 …を調べたい場合、普通COUNTIFを使うと思います。



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


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

それも貴方の思い込み。COUNTIFを複数使えるケースもあります。

この回答への補足

そうですか。
もしあなたに質問に答える能力があるならば
揚げ足を取って終わりにするのではなく
回答をしていただきたいです。

補足日時:2006/05/14 09:43
    • good
    • 5

私なら条件を5つのセルに入力し、条件の分だけ範囲指定した状態で、


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

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

となります。
    • good
    • 1
この回答へのお礼

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

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

もしよろしければこちらもお願いします。

お礼日時:2006/05/13 14:45

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



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

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

なるほど。
ちょっと進みました。
ありがとうございました。

お礼日時:2006/05/14 13:12

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