• ベストアンサー

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以外」のオプションが有効になりません。 よろしくお願い致します。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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を抜いてしまえばよいのでは?

XXwaiwaiXX
質問者

お礼

おせわさまです。 ついに出来ました。先日のVBAをなんとかものにしようと勉強しました~(^^ゞ 何事も諦めていては駄目ですね。 今回は本当にお世話になりました。またの機会がありましたら、よろしくです。

XXwaiwaiXX
質問者

補足

Wendy02さん いつも丁寧なご回答をありがとう御座います。 前回の件は申し訳ありませんでした。関数だけで 解決できるかと思いましたが、難しいコードが必要だったようで、どのように活用するのかわからないでいました。 今回の関数も先日のコードが必要なのですね。 勉強します。。。

その他の回答 (3)

  • wisemac21
  • ベストアンサー率39% (171/429)
回答No.3

>A列の1でフィルターをかけた場合 さらにB列でオートフィルタオプションで「 0 と等しくない」でフィルターをかけて絞り込んで =SUBTOTAL(2,C2:C11) これで正確にカウントされます。

XXwaiwaiXX
質問者

補足

ありがとうございます。 皆様のご教授は非常に参考になりますが、当方の具体例が悪いので、伝わってないようですね。申し訳ないです。 改めて具体例を挙げてみますのでよろしくお願い致します

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 簡単に考えれば、 C列等に補助列を作って、 C2:~ =IF(B2=0,"",B2) として、 計算で、このようにすればよいのではありませんか?  =SUBTOTAL(2,C2:C11) >例えばA列が不規則な数字の場合は上記の関数ではだめですよね。 A列でフィルタを取って、B列のカウントだから、A列に結果が出ていれば、そのカウントには同じことだと思います。もし違うのでしたら、具体例がないと分らないですね。

XXwaiwaiXX
質問者

補足

ありがとうございます。 実は膨大なデータなので補助列を作らないで 出来ればと思ってます。 実際はA列のみでなくフィルタを掛ける場所が複数あるので困ってます。

  • kaisendon
  • ベストアンサー率44% (114/257)
回答No.1

こんにちは フィルターにかける、かけないに関わらず =SUMPRODUCT((A2:A11=1)*(B2:B11<>0)) のようにしては如何でしょうか?

XXwaiwaiXX
質問者

補足

ありがとう御座います。 補足として例えばA列が不規則な数字の場合は上記の関数ではだめですよね。 これって別問題でしょうか。