• ベストアンサー

(Excel)フィルタで特定データの個数を調べる

A1:C100までデータで、一行目がタイトル行でオートフィルタになっています。 C列には「処理」、「未処理」の2種類のデータが混在して入っています。 他の列でフィルタをかけたときに「処理」、「未処理」のそれぞれの個数をD1,E1に表示する 数式を教えて下さい。

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

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

こちらが参考にならないでしょうか? http://hpcgi1.nifty.com/kenzo30/a_cbbs/cbbs.cgi?mode=al2&namber=80879&rev=&no=0&P=R&KLOG=405#2 D1: =SUMPRODUCT(SUBTOTAL(3,INDIRECT("B" & ROW(B2:B100)))*(C2:C100="処理")) E1: =SUMPRODUCT(SUBTOTAL(3,INDIRECT("B" & ROW(B2:B100)))*(C2:C100="未処理"))

すると、全ての回答が全文表示されます。

その他の回答 (3)

noname#195146
noname#195146
回答No.4

 #1です。もう少し考えてみました。  もし一つのセルで、オートフィルタでフィルタリングしたときだけ、処理・未処理それぞれの数を表示するなら、以下でできるようです(フィルタリングしていないときは空白表示)。 =IF(SUBTOTAL(3,C2:C100)=COUNTA(C2:C100),"",IF(OR(SUBTOTAL(3,C2:C100)=0,SUBTOTAL(3,C2:C100)=COUNTIF(C2:C100,"未処理"),COUNTA(C2:C100)=0),COUNTIF(C2:C100,"未処理"),COUNTIF(C2:C100,"処理")))  ここで、二つのセルで処理・未処理で分けようとして、頭がこんがらがったので、とりあえずこれだけ回答してみます。  何かあれば、補足欄で仰せつけください。

5244
質問者

お礼

ありがとうございます。 参考になります。

すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

フィルタ機能を使っている場合に表示されているセルの数を数えたりすることはSUBTOTAL関数を使って行うことになります。その場合でも残念ながらC列に表示されているもので処理や未処理を数えることはできません。 そのため次のようにしてはどうでしょう。 1行目はタイトル行でA列からC列にデータが有るのですから例えばD列とE列の2行目から下方には作業列を設けます。 D2セルには次の式を入力して下方にドラッグコピーします。 =IF(C2="処理",1,"") E2セルには次の式を入力して下方にドラッグコピーします。 =IF(C2="未処理",1,"") その後に処理の答えをD1セルに表示させるにはD1セルに次の式を入力します。 =SUBTOTAL(9,D$2:D$1000) 未処理の答えをE1セルに表示させるためにE1セルには次の式を入力します。 =SUBTOTAL(9,E$2:E$1000) なお、引数の9はSUMに相当します。引数が2でもよいですね。COUNT関数に相当します。 ところでD1セルやE1セルは▼の邪魔になって数値が見えません。「セルの書式設定」で「配置」を「中央揃え」などにすればよいでしょう。

5244
質問者

お礼

ありがとうございます。 作業領域を使うと数式がわかりやすいですね。

すると、全ての回答が全文表示されます。
noname#195146
noname#195146
回答No.1

 オートフィルタでフィルタをかけたときだけの処理というのは難しいです。  常に表示してよいなら、以下のようにすればできます(1行目はタイトル行とのことですので除外しています)。  D1セルには、「=COUNTIF(C2:C100,"処理")」と入力する。  E1セルには、「=COUNTIF(C2:C100,"未処理")」と入力する。

5244
質問者

お礼

ありがとうございます。 難しそうですね。

すると、全ての回答が全文表示されます。

関連するQ&A