• ベストアンサー

《エクセル2000》複数条件の個数カウント

こんにちは。 A列とB列に、それぞれ任意の数字が入っているのですが、A列とB列に同じ数字が入っている行の数をカウントするにはどうしたらいいでしょうか… ネット検索すると、似て非なる事例はたくさんみつかるのですが、この条件の例が見つけられず、困っています。 よろしくお願いいたします。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

=SUMPRODUCT(ISNUMBER(A1:A100)*(A1:A100=B1:B100)) で1~100行目までの件数がカウントできます。

bari_saku
質問者

補足

すごい!出ました! でも、どうしてですか? SUMPRODUCTは、合計を出す関数ですし、ISNUMBERは数字がどうかをチェックする関数ですのに…

その他の回答 (5)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.6

#1のmshr1962です。 SUMPRODUCT関数自体は配列の積の和を求める関数ですが 配列を条件式にすることでCOUNTIFやSUMIFの代用ができます。 しかも、複数の条件を設定できるので覚えておくと便利です。 =SUMPRODUCT(ISNUMBER(A1:A100)*(A1:A100=B1:B100)) の場合は (A列が数値、A列とB列が同じ)条件のAND(*)結合になります。 結果として TRUE(1)*TRUE(1)=1 TRUE(1)*FALSE(0)=0 FALSE(0)*TRUE(1)=0 FALSE(0)*FALSE(0)=0 としてカウントするので件数になります。 上記でB列の数値の計が必要なら =SUMPRODUCT(ISNUMBER(A1:A100)*(A1:A100=B1:B100)*(B1:B100)) で集計できます。 OR条件の場合は"*"の変わりに"+"にしてください。

bari_saku
質問者

お礼

なるほど、アスタリスクは「×」ではなく「and」の意味だったのですね。 TRUEとFALSEの部分は知っていたので、これですっきりしました。 本当にありがとうございました。

回答No.5

普通の関数と、配列数式を利用して、 =COUNT(IF(A1:A10=B1:B10,)) を入力し、Ctrl+Shiftを押しながら、Enter でもokです。

bari_saku
質問者

お礼

こんにちは、こちらでも出ますね。 ただ、質問に「両方のセルが空白の場合はカウントしない」というのを書き忘れてしまいまして…すいません! でも、今後の参考にさせていただきます。

noname#240783
noname#240783
回答No.4

=COUNT(IF(A1:A6=B1:B6,A1:A6)) で配列数式(Ctrl+ShiftでEnter) なんてのも、どーでしょうか?!

bari_saku
質問者

お礼

こんにちは、こちらでも出ますね。 ただ、質問に「両方のセルが空白の場合はカウントしない」というのを書き忘れてしまいまして…すいません! でも、今後の参考にさせていただきます。

  • kozo_k
  • ベストアンサー率29% (55/188)
回答No.3

ちょっとズルをして下のようにしたらどうでしょうか。  A列 B列 C列 1 1  1   =if(A1=B1,1,0) →C列に1が入る (2から9省略) 10 1  3  =if(A10=B10,1,0) →C列に0が入る 11         =sum(C1:C10)

bari_saku
質問者

お礼

こんにちは、こちらでも出ますね。 ただ、質問に「両方のセルが空白の場合はカウントしない」というのを書き忘れてしまいまして…すいません! でも、今後の参考にさせていただきます。

回答No.2

方法はいろいろあるのでしょうけど、次の式ではいかがでしょうか。 =SUMPRODUCT(IF(A1:A20=B1:B20,1,"")) で [Ctrl]と[Shift]を押しながら[Enter]

bari_saku
質問者

お礼

こんにちは、こちらでも出ますね。 ただ、質問に「両方のセルが空白の場合はカウントしない」というのを書き忘れてしまいまして…今回は両方のセルが空白という例外があるのです、すいません! でも、今後の参考にさせていただきます。

関連するQ&A