- ベストアンサー
EXCELフィルタ 空白セルをカウントしない方法
同じ質問を投稿していますが、思っている回答が得られなかったので、 また質問させていただきます。 エクセルで、文字だけが入っているセルの合計を出したいのですが、 フィルタをかけるので、SUBTOTAL関数を使用していましたが、 空白セルまで数えてしまいます。 空白セルは数えたくありません。 (空白ですが数式は入っている) フィルタをかけた時に文字だけ入っているセルの合計は どのようにしてだせば良いですか?? 画像添付させていただきました。 B3B4のセルをカウントしないようにしたいです。 わかりずらくてすみませんが どなたか教えて下さい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ん~~と? >フィルタをかけた時に文字だけ入っているセルの合計は 「合計」というのは「数の足し算をすること」です。(1+2=3のように) アナタのヤリタイことは,オートフィルタで絞り込んで見えているセルから,空白("")ではないセルの「個数を数えたい」ということですね? 仮にB列にアナタの数えたい「文字または""」が計算されているとすると, 個数を数えるセルに =SUMPRODUCT(SUBTOTAL(3,INDIRECT("B"&ROW(INDIRECT("R2C:R[-1]C",FALSE))))*(INDIRECT("R2C:R[-1]C",FALSE)<>"")) とします。 #簡単にするなら 計算したい表の範囲がたとえば「B2:B10」のセル範囲とすると =SUMPRODUCT(SUBTOTAL(3,INDIRECT("B"&ROW(B2:B10)))*(B2:B10<>"")) のようでもいいです。 #参考 実際にセルで計算している内容が「文字」ではなく「数値」を表示しているのであれば,お話はもっと簡単に「=SUBTOTAL(2,範囲)」でおしまいですが,いまは「abc」のような文字が計算されているとして回答しています。 #別の方法(もっと簡単) 隣の仮にC列に C2: =IF(B2="","",SUBTOTAL(3,B2)) 以下コピー と入れておいて =SUM(C2:C10) などのように合計したり,この式の「SUBTOTAL(3,B2)」の所を応用して「その行で出てくる数字」を何気なく計算させておいて =COUNT(C列の範囲) やSUBOTOTAL(2,C列の範囲)で計算する手もあります。
その他の回答 (3)
- keithin
- ベストアンサー率66% (5278/7941)
ん? >下記の方法でやるならば、範囲はどこに入力すれば良いですか?? 範囲を入力すると =SUMPRODUCT(SUBTOTAL(3,INDIRECT("B"&ROW(B2:B10)))*(B2:B10<>"")) になります。 再掲: >(B列の)個数を数えるセルに >=SUMPRODUCT(SUBTOTAL(3,INDIRECT("B"&ROW(INDIRECT("R2C:R[-1]C",FALSE))))*(INDIRECT("R2C:R[-1]C",FALSE)<>"")) >とします。 回答したムズカシイ式も,既に範囲は記入済みです。B列の集計の(いままでSUBTOTALを入れていた)セルに,回答した通りの数式をそのまま何も触らずにこの画面からコピーして貼り付けてやれば計算できます。 ダマされたと思って,回答した通りに手を動かしてみてください。 あぁ,それとも「B列」じゃなく例えば「D列」でしたというのなら =SUMPRODUCT(SUBTOTAL(3,INDIRECT("D"&ROW(INDIRECT("R2C:R[-1]C",FALSE))))*(INDIRECT("R2C:R[-1]C",FALSE)<>"")) になります。もちろん,この式は集計したいD列の集計セルに入れます。 アナタが抱えているエクセルの「目に見える姿」(どこのセル範囲にどんなデータが,どこのセル番地にどんな数式が入っています,と言った具合に)を丁寧に最初からご相談に書いておくと,こういった要らないやり取りも省いてすっきり出来ます。今後のご参考に。
お礼
=SUMPRODUCT(SUBTOTAL(3,INDIRECT("B"&ROW(B2:B10)))*(B2:B10<>"")) これでできました! ご迷惑かけてすみません。 次回からはもっと詳しく投稿しようと思います。 ありがとうございました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えばB1セルに項目名が有ってB2セルから下方に数式が入力されておりその結果が文字列で表示されたり空白だったりする場合に、フィルタ操作後のB列における文字列の入ったセルの数を求めるのでしたら、例えばF列に作業列を設け、F2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B2="","",1) その後にフィルタ操作を行ってB列に表示されている文字列を含むセルの数は例えばG1セルに次の式を入力しておけばよいでしょう。 =SUBTOTAL(9,F:F)
お礼
回答ありがとうございます。 説明不足ですみませんでした。
- kuma56
- ベストアンサー率31% (1423/4527)
直接の回答で無くてスマナイガ・・・・・・ >同じ質問を投稿していますが、思っている回答が得られなかったので、また質問させていただきます だったら、前回の質問をリンクするなりして判るようにしておかないと、また同じような回答がきちゃうかもよ。 >画像添付させていただきました。 ・・・・・・????
補足
すみません。m(_ _)m 画像添付がなぜか上手くいきません。。。 OKwaveをもう少し勉強してから出直します。
お礼
回答ありがとうございます。 ⇒アナタのヤリタイことは,オートフィルタで絞り込んで見えているセルから,空白("")ではないセルの「個数を数えたい」ということですね? そのとおりです! ちなみに数字ではなく、文字です。 下記の方法でやるならば、範囲はどこに入力すれば良いですか?? 無知ですみません。。。 =SUMPRODUCT(SUBTOTAL(3,INDIRECT("B"&ROW(INDIRECT("R2C:R[-1]C",FALSE))))*(INDIRECT("R2C:R[-1]C",FALSE)<>""))