- 締切済み
オートフィルタ と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を使ってうまくできないでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- nobu-
- ベストアンサー率33% (31/93)
オートフィルタを使用してない状態(フィルターオプションで書き出す等、使用しても行う方法はありますが)であれば、昔懐かしい?Dcount関数等やテーブル機能(引数の文字列に"○"や"×"等を指定する)を使えば可能なのでは? EXCELのバージョンにもよりますが、もし関数一覧で存在しなくても動く関数はたくさんあります。 たとえばexcel2002だと =dcount()と手動で入力後、エンターを押さずにfxをクリックすると書式が現れます。
- zap35
- ベストアンサー率44% (1383/3079)
C列の表示は○、×でなくてはいけませんか? ○を数値の1000に、×を数値の1に置き換えれば、1000行までなら計算できます。(C列と別の列に計算式で値を入れても良いです) フィルタで期間を絞った後、○(1000)の数は =INT(SUBTOTAL(9,C1:C1000)/1000) ×(1)の数は =MOD(SUBTOTAL(9,C1:C1000),1000) で求めることができます。 B列の数字が入っているセルの個数は =SUBTOTAL(2,B1:B1000) で良いと思います。
- hiro-ss16
- ベストアンサー率42% (18/42)
オートフィルターで抽出した"○"や"×"他、記号等は SUBTOTAL関数ではカウント出来ません。("○"だけなら"3"で出来ますが、混在は不可ですね) お手数でも、オートフィルターで抽出したデータをどこかにコピーして、COUNTIF か COUNT関数で集計されてはいかがですか。
補足
なるほど! いいアイデアですね。 実は、○、×のほかに △ もありますが・・ =SUBTOTAL(2,C1:C1000) から ○、×の数を引いてなんとかできそうです。 ありがとうございました。