• 締切済み

オートフィルタ とCOUNT

あるデータの分析で、以下のような長期のデータベース(例えば1000行)から 任意の期間をオートフィルタで抽出、表示をして B列の発生回数 C列の”○” ”×”の数をカウントしたいのですが   A列      B列  C列 1 2007/4/18   12   ○ 2 2007/4/19   3 3 2007/4/20   22    × 4 2007/4/23 5 2007/4/24 6 2007/4/25   2 7 2007/4/26 8 2007/4/27   9 2007/4/30 10 2007/5/1    4    ○ ======================================== 結果        5 ○              2 ×              1 =SUBTOTAL(3,B1:B10) とすると  行数の10になってしまいます。 全体の行からカウント =COUNT(B1:B1000) のように したいので SUBTOTAL関数と COUNTを使ってうまくできないでしょうか?

みんなの回答

  • nobu-
  • ベストアンサー率33% (31/93)
回答No.3

オートフィルタを使用してない状態(フィルターオプションで書き出す等、使用しても行う方法はありますが)であれば、昔懐かしい?Dcount関数等やテーブル機能(引数の文字列に"○"や"×"等を指定する)を使えば可能なのでは? EXCELのバージョンにもよりますが、もし関数一覧で存在しなくても動く関数はたくさんあります。 たとえばexcel2002だと =dcount()と手動で入力後、エンターを押さずにfxをクリックすると書式が現れます。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

C列の表示は○、×でなくてはいけませんか? ○を数値の1000に、×を数値の1に置き換えれば、1000行までなら計算できます。(C列と別の列に計算式で値を入れても良いです) フィルタで期間を絞った後、○(1000)の数は  =INT(SUBTOTAL(9,C1:C1000)/1000) ×(1)の数は  =MOD(SUBTOTAL(9,C1:C1000),1000) で求めることができます。 B列の数字が入っているセルの個数は  =SUBTOTAL(2,B1:B1000) で良いと思います。

Naodes
質問者

補足

なるほど! いいアイデアですね。 実は、○、×のほかに △ もありますが・・  =SUBTOTAL(2,C1:C1000) から ○、×の数を引いてなんとかできそうです。 ありがとうございました。

  • hiro-ss16
  • ベストアンサー率42% (18/42)
回答No.1

オートフィルターで抽出した"○"や"×"他、記号等は SUBTOTAL関数ではカウント出来ません。("○"だけなら"3"で出来ますが、混在は不可ですね) お手数でも、オートフィルターで抽出したデータをどこかにコピーして、COUNTIF か COUNT関数で集計されてはいかがですか。