• ベストアンサー

Excel COUNTIFSでカウントできません

Excel2007を使用しています。 複数の検索条件から、データの数をカウントしたかった為、COUNTIFSを使用してカウントしようとしたところ、エラーが返ってきてしまいました。 実際のではありませんが、下記のように記入しました。 =COUNTIFS(A:C,1,D:D,2) SUMPRODUCT((A:C=1)*(D:D=2)) なら、一応やりたいことは出来たのですが、動作が重くなってしまいました。 (面倒がらず列選択せず、きちんと範囲指定すれば別なのかもしれませんが) 何かスマートなやり方があれば、ご教授頂ければと思います。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.8

NO4です。 COUNTIFS関数を選択されていたのでand条件と思いこんでいました。 SUMPRODUCT関数がスマートと思いますが一例です。 =SUM(INDEX((A:C=1)*(D:D=2),))

jyemana
質問者

お礼

SUM関数で、そういう事ができるという事実を初めてしりました。 関数って奧深いですね。 来週にでも試してみたいと思います! 有り難う御座いました!

その他の回答 (7)

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.7

訂正します No2の回答で >条件が、OR条件のようですので一つではできません と記載しましたが、厳密に言うとOR条件ではないですね No6さんの回答のように 作業用列の場合 =COUNTIF(A1:C1,1)*(D1=2) ではないかな (OR条件の場合 No6さんの式を使用ください) SUMPRODUCT関数使用で 範囲をきちんとすればいいと思いますよ

jyemana
質問者

お礼

またまた回答有り難う御座います。 そうですね、ORとANDの複合体みたいな感じです。 SUMPRODUCTは、確かに式としてはスマートなのですが…。 ありがとうございました><

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

列数も多く、しかも行数が多い場合には作業列を使って対応することが分かり易く計算も重くなりません。例えば次のようにすればよいでしょう。いたずらに式を複雑にする必要もありません。 E1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(AND(COUNTIF(A1:C1,1)>0,D1=2),1,"") その上で、答えは =SUM(E:E) で表示させます。

jyemana
質問者

お礼

確かにそれでできるのですが 実はカウントするのは一項目ではなく複数あり 別シートで集計をだしているものなので、なかなか現実的ではない感じです。 むむ、難しいですね。 回答ありがとうございました!

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.5

>SUMPRODUCT((A:C=1)*(D:D=2)) >なら、一応やりたいことは出来たのですが、動作が重くなってしまいました。 動作が重くなる原因は 列指定のためと思われます 範囲を少し多めにとるくらいに設定してはいかがですか?

jyemana
質問者

お礼

面倒くさがって列指定するのがいけないのですよね>< でも行が1000以上あるので、範囲指定しても同じかもと思って見たりしています。(まだ試してませんが)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

どうもA:Cを許容しないみたいですので次の方法をお試しください。 =COUNTIFS(A:A,1,B:B,1,C:C,1,D:D,2)

jyemana
質問者

お礼

回答有難うございます! AND条件ではないので、それだと正確にカウントさないのですよね。 もう少し色々考えてみますね。

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.3

訂正します >=COUNTIFS(A:A,1,D:D,2)+COUNTIFS(B*B,1,D:D,2)+COUNTIFS(C:C,1,D:D,2) =COUNTIFS(A:A,1,D:D,2)+COUNTIFS(B:B,1,D:D,2)+COUNTIFS(C:C,1,D:D,2)

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.2

SUMPRODUCT((A:C=1)*(D:D=2)) で解決するならそれで良いのでは? 条件が、OR条件のようですので一つではできません =COUNTIFS(A:A,1,D:D,2)+COUNTIFS(B*B,1,D:D,2)+COUNTIFS(C:C,1,D:D,2)

jyemana
質問者

お礼

その方法も考えたのですが、実際のデータはもう少し範囲が広いので、なかなか凄いことに! ORで、条件指定が出来ないのが痛いですね。 回答有難うございました。

  • satumei
  • ベストアンサー率42% (71/168)
回答No.1

COUNTIFS(A:C,1,D:D,2)⇒ COUNTIFS(A:C,"1",D:D,"2") というように二重引用符で囲むと反映すると思いますが。

jyemana
質問者

お礼

回答有難うございます。 文字列参照になるだけで、結果変わらずでした。 範囲指定無理見たいですね(;つД`)

関連するQ&A