- ベストアンサー
EXCELで cuontifやsubtotal以外の関数で0以外の数値をカウントできないでしょうか?
今回は数値のカウントを教えてください。 下記のような場合、A列の1でフィルターをかけた場合 B列の0を除いた整数のセルの個数をカウントするには どのような関数がのぞましいでしょうか? A B 1 a b 2 1 10 3 1 12 4 0 0 5 0 0 6 1 15 7 1 0 8 1 0 ・ ・ ・ ・ 11 1 12 countifだとフィルターが有効にならず、subtotalでは 「0以外」のオプションが有効になりません。 よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 >実は膨大なデータなので補助列を作らないで >出来ればと思ってます。 ちょっと気になって、前回の私の書き込みを調べてみましたが、 前回 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1578916 EXCELで0を除いた平均値を求めるには? を書いた人ですよね。 前回の、私の回答は試してはいませんね。 SUBTOTAL のユーザー定義関数の VSUM という関数です。 =VSUM(2,B2:B11,TRUE) で、0以外のCOUNT が出るはずですし、平均値なら、 =VSUM(1,B2:B11,TRUE) になります。 でも、もっと簡単なのは、範囲を選択して、置換で、0を抜いてしまえばよいのでは?
その他の回答 (3)
- wisemac21
- ベストアンサー率39% (171/429)
>A列の1でフィルターをかけた場合 さらにB列でオートフィルタオプションで「 0 と等しくない」でフィルターをかけて絞り込んで =SUBTOTAL(2,C2:C11) これで正確にカウントされます。
補足
ありがとうございます。 皆様のご教授は非常に参考になりますが、当方の具体例が悪いので、伝わってないようですね。申し訳ないです。 改めて具体例を挙げてみますのでよろしくお願い致します
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 簡単に考えれば、 C列等に補助列を作って、 C2:~ =IF(B2=0,"",B2) として、 計算で、このようにすればよいのではありませんか? =SUBTOTAL(2,C2:C11) >例えばA列が不規則な数字の場合は上記の関数ではだめですよね。 A列でフィルタを取って、B列のカウントだから、A列に結果が出ていれば、そのカウントには同じことだと思います。もし違うのでしたら、具体例がないと分らないですね。
補足
ありがとうございます。 実は膨大なデータなので補助列を作らないで 出来ればと思ってます。 実際はA列のみでなくフィルタを掛ける場所が複数あるので困ってます。
- kaisendon
- ベストアンサー率44% (114/257)
こんにちは フィルターにかける、かけないに関わらず =SUMPRODUCT((A2:A11=1)*(B2:B11<>0)) のようにしては如何でしょうか?
補足
ありがとう御座います。 補足として例えばA列が不規則な数字の場合は上記の関数ではだめですよね。 これって別問題でしょうか。
お礼
おせわさまです。 ついに出来ました。先日のVBAをなんとかものにしようと勉強しました~(^^ゞ 何事も諦めていては駄目ですね。 今回は本当にお世話になりました。またの機会がありましたら、よろしくです。
補足
Wendy02さん いつも丁寧なご回答をありがとう御座います。 前回の件は申し訳ありませんでした。関数だけで 解決できるかと思いましたが、難しいコードが必要だったようで、どのように活用するのかわからないでいました。 今回の関数も先日のコードが必要なのですね。 勉強します。。。