みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル2010、複数条件のセルを数える

エクセル2010です。
A列のリストの中から、「B1またはC1のセル」と同一の名前がいくつあるか、という計算式を作りたいです。

複数条件ですから、COUNTIFS関数で、
=COUNTIFS(A:A,B1,C1)
としてみたのですが、これではエラーが出ます。

よく考えてみたら、「または」という、どちらかの条件が含まれるということですから、これでは駄目なようです。
そこで調べたところ(http://support.microsoft.com/kb/275166/ja)、こういう場合SUM(IF())を使うというのがわかり、

=SUM(IF((A:A=B1)+(A:A=C1),1,0))
としてみましたが、これでも結果がすべて0になってしまいます。

私は何か捉え違いをしているのでしょうか?
こういう条件の場合、どういう式にすればよいのでしょうか。
どうぞよろしくお願いします。

投稿日時 - 2013-01-19 16:57:26

QNo.7899680

困ってます

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

配列数式は列全体を配列とみなすことができません。

B1とC1が 添付図のように重ならないなら
=COUNTIF(A:A,B1)+COUNTIF(A:A,C1)
とか、(遊びで)
=SUMPRODUCT(COUNTIF(A:A,B1:C1))
など

重なるなら AND条件になるので COUNTIFSが使えると思います。
上記数式から、重なった部分を引けばよい

投稿日時 - 2013-01-19 17:40:32

お礼

SUMPRODUCT関数でうまくいきました。
引くやり方はよくわからなかったので、また機会があれば調べてみようと思います。
ありがとうございました。

投稿日時 - 2013-01-20 09:57:23

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

エクセル2010では列:列の配列計算が出来ます。
ご質問のような計算をさせたいなら
=SUMPRODUCT((A:A=B1)+(A:A=C1))
のようにする事は出来ます。


#補足1
あなたの数式は間違っていませんが、
=SUM(IF((A:A=B1)+(A:A=C1),1,0))
と記入した後、必ずコントロールキーとシフトキーを押しながらEnterで入力しなければいけません。


もっとも、この式で計算できるなら
=COUNTIF(A:A,B1)+COUNTIF(A:A,C1)
=SUMPRODUCT(COUNTIF(A:A,B1:C1))
の方が遥かに簡単で、しかも安全かつ高速です。


#補足2
COUNTIFSは「かつ」の条件しか計算できません。
今回やりたかったように「または」で数えたいときは
=COUNTA(A:A)-COUNTIFS(A:A,"<>"&B1,A:A,"<>"&C1,A:A,"<>")
といった具合の、計算の工夫が必要です。

投稿日時 - 2013-01-19 21:28:29

お礼

シフトとコントロールとエンターを、どういう時に押すのかよくわかりませんでした。最後に押すと{ }がついてしまいます。
SUMPRODUCT関数でうまくいったので、これでいこうと思います。
ありがとうございました。

投稿日時 - 2013-01-20 10:01:00

あなたにオススメの質問