- ベストアンサー
オートフィルタ後のデータ集計方法について
- Excel2007を使用しています。A列からG列に業者の基本情報、H列からI列に所在地情報があります。
- オートフィルタによる複数の項目のフィルタリングを行い、業者数を求めたいです。
- フィルタリング後のレコードのみを対象に業者数をカウントする方法を教えてください。Excel2007またはExcel2003での方法を教えていただけると助かります。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
99行までデータがあるとして =COUNT(1/FREQUENCY(MATCH(IF(SUBTOTAL(3,INDIRECT("A"&ROW(A1:A100))),A1:A100,"")&"",A1:A100&"",0),MATCH(IF(SUBTOTAL(3,INDIRECT("A"&ROW(A1:A100))),A1:A100,"")&"",A1:A100&"",0)))-2 をCtrl+Shift+Enterで入力してみます。
その他の回答 (3)
- keithin
- ベストアンサー率66% (5278/7941)
ご説明したことをやらずに出来ないと言われて,再度回答するのは大変に苦痛です。 再掲: >をCtrl+Shift+Enterで入力してみます。 という手順を行っていません。
お礼
ありがとうございました。 できました。 苦痛を感じさせてしまい申し訳ありませんでしたが、やらずにいたのではなく、 見落としてしまい気づいていなかっただけです。
- KURUMITO
- ベストアンサー率42% (1835/4283)
A列で表示されている業者コードの数を求めるのでしたら =SUBTOTAL(3,A2:A1000)などの式で
お礼
回答ありがとうございます。 ですが、これですと業者コードの列に対してSUBTOTALを使った場合、 業者数ではなくレコード数が求められてしまいました。 集計したいのは「業者数」ですので、レコードとは少々異なります。 例えばフィルタの結果、同じ業者の別拠点のデータが残った場合、 それが2レコードであれば、ほしい数値は2ではく1になります。
- KURUMITO
- ベストアンサー率42% (1835/4283)
オートフィルタなどで絞り込んだデータを対象に計算するのでしたらSUBTOTAL関数を使います。 例えばB2セルからB100セルのうちでオートフィルタを実施した場合の集計は次のような式になります。 =SUBTOTAL(9,B2:B100) 参考になりましたら
お礼
回答ありがとうございます。 ですが、頂いた回答ですと業者数ではなく業者コードの合計が求められてしまいました。 集計したいのは「業者数」ですので、業者コードを合計してしまっては求めたい値と違います。
お礼
回答ありがとうございます。 次のようなデータに対し、ご回答いただいた式のA100をA32に修正したもので集計してみました。 コード,社名,業務1,業務2,業務3,業務4,業務5,住所 100,A社,1,1,1,0,1,埼玉 100,A社,1,1,1,0,1,東京 100,A社,1,1,1,0,1,神奈川 100,A社,1,1,1,0,1,千葉 100,A社,1,1,1,0,1,栃木 200,B社,1,0,1,1,0,東京 200,B社,1,0,1,1,0,神奈川 200,B社,1,0,1,1,0,群馬 300,C社,0,1,1,1,1,千葉 300,C社,0,1,1,1,1,栃木 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 300,C社,0,1,1,1,1,東京 どこの項目でフィルタを掛けても、必ず"3"が返ってきてしまいます。 上記のデータの場合、例えば住所の列に対して「東京」のフィルタを掛けたときの結果は"3"で正しいのですが、 これを「埼玉」とした場合の結果は"1"である必要があります。 「千葉」ならば"2"です。