• 締切済み

Excel2003フィルタ&関数の件

お世話になります。 Excel2003についてですが、データにフィルタを設定した後、数字を出したい列を指定して、関数COUNTIFを実行してみましたところ実際自分で試しに数えた数字と合わないのですが原因が判りません!どなたか解決策のご教授を御願いいたします。

みんなの回答

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

フィルタをかけてデータを絞り込んだあとでも、通常使っている関数では隠されたデータも含めて、つまり、フィルタ前の状態のままのデータについて関数が働きますので、フィルタの後で表示されているデータについて残念ながら関数を使うことができません。 唯一、フィルタ後に表示されているデータについて適用できる関数はSUBTOTAL関数です。この関数では表示されている数値の入ったセルの数や空白でないセルの数などを数えることはできますがCOUNTIF関数に相当するようなことはできません。 フィルタ後のデータについてCOUNTIF関数を使いたい状況は複数の条件を満たすデータの数を数えることができる関数が用意されていればよいのではないでしょうか。そのような場合にはSUMPRODUCT関数やDCOUT関数、DCOUNTA関数などを使うことになりますね。 例えばSUMPRODUCT関数ではA列でAクラス、B列で50以上、C列で70以上の人数を数えるとしたら次のような式になりますね。 =SUMPRODUCT((A1:A100="Aクラス")*(B1:B100>=50)*(C1:C100>=70))

qa4649
質問者

お礼

ご親切なアドバイス有難うございます。 SUBTOTAL試みてみます。COUNTIF関数のようには出来ない事も承知致しました。

noname#204879
noname#204879
回答No.1

抽出されたレコードのみをカウントするのではあれば、 =SUBTOTAL(2,range) または =SUBTOTAL(3,range) が使えそうな気がしますが・・・

qa4649
質問者

お礼

アドバイス有難うございます。 参考にさせていただきます。

関連するQ&A