• ベストアンサー

可視セルの重複データを除いたデータをカウントする方法

可視セルの重複データを除いたデータをカウントする方法 Excel2003を使用しています。 A列~N列までオートフィルタを設定しています。 K列である特定の文字が入力されているセルを抽出しているときに表示されているC列のデータのうち、重複するデータを除いた個数を求めたいのですが、どうしたらよいでしょうか? 上記の状態で、C列のプルダウンに表示されているリストのデータ数が求めたい個数と同じになりますが、プルダウンに表示されているリストのデータ数をカウントする方法などあるのでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

1.フィルターがかかった状態でC列をタイトル行を含めてコピーします。 2.別シートに貼り付けます。これで可視データのみ張り付いたと思います。(2007では違うらしい) 3.貼り付けたタイトルを選択して、メニューの「データ」、「フィルタ」、「フィルタオプションの設定」 4.「重複するレコードは無視する」にチェックしてOK これで重複しないリストが表示され、画面下部のステータスバーに何件中何件と重複しない数が表示されます。 以上、エクセル2000で試しました。

KOH3193
質問者

お礼

回答ありがとうございます。 記載していただいたような作業的なことをしないと難しいのでしょうね。 関数の組み合わせ(?)みたいなもので、できないものかと過去の質問等を参考にしながら、いろいろと試してみましたが、うまくいかず…。 とりあえず、教えていただいた方法をマクロボタンにでも登録して、作業を簡略化してみようと思います。 ありがとうございました!

その他の回答 (3)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

可視セルを数えるにはSUBTOTAL関数などが使われますが、重複するデータを除いた個数を求めることはできませんね。そこで作業列を設けて対応する方法ですが回答No2で示した方法ではオートフィルタとは関係なくK列に例えば あいう のある場合でC列の重複のないデータを求めるものでしたが、K列でのオートフィルタの操作ではあいうの場合とは限りませんね。そのような場合でも重複するデータを除いた個数を求める方法としてオートフィルタの操作の前にP2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(C2="","",IF(COUNTIF(C$2:C2,C2)=1,1,"")) その後に例えばQ1セルに =SUBTOTAL(9,P:P) と入力することでK列でのオートフィルタ後にC列で重複するデータを除いたデータの個数が表示されます。オートフィルタはK列でなくても他の列で行った場合でも問題なく対応することができますね。

KOH3193
質問者

お礼

再度の回答ありがとうございます。 他の条件下でも対応可能な方法…勉強になります。 今回も詳しく説明していただきまして、ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

可視セルを数えるにはSUBTOTAL関数などが使われますが、重複するデータを除いた個数を求めることはできませんね。オートフィルタとは関係なくオートフィルタと同じような機能を持つ作業列を例えばP列に設け、2行目からデータがN列まででは入力されているとして、P2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(AND(COUNTIF(K2,"*あいう*")>0,COUNTIF(C$2:C2,C2)=1),MAX(P$1:P1)+1,"") この式で あいう と使われているのは例えばK列で あいう の文字を含むというオートフィルタの条件を設定した場合のことです。 あいう の代わりにK列でのオートフィルタで使用する条件を使ってください。 その後に例えばQ1セルに =MAX(P:P) と入力することで重複するデータを除いたデータの個数が表示されます。ここで重複するデータを除いたといってもそのうちの一つのデータはデータの個数に含めた式となっています。もしも重複するデータは一切数えないということでしたら、P2セルには次の式を入力して下方にオートフィルドラッグします。 IF(AND(COUNTIF(K2,"*あいう*")>0,COUNTIF(C:C,C2)=1),MAX(P$1:P1)+1,"") このような操作はオートフィルタを実施する以前の表で行います。その後にオートフィルタを行っても同じ結果が得られます。

KOH3193
質問者

お礼

回答ありがとうございます。 可視セルの個数、重複データを除いた個数、それぞれですと関数で求められたのですが、どちらの条件も満たす個数を関数で求めることはできないようですね。 同種類の過去質問を見ていても、作業列等使用することなくダイレクトに求めることはできないような感じはしましたが…。 できないということがわかっただけでも良かったです。 丁寧に説明していただき、ありがとうございました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

1.フィルターがかかった状態でC列をタイトル行を含めてコピーします。 2.別シートに貼り付けます。これで可視データのみ張り付いたと思います。(2007では違うらしい) 3.貼り付けたタイトルを選択して、メニューの「データ」、「フィルタ」、「フィルタオプションの設定」 4.「重複するレコードは無視する」にチェックしてOK これで重複しないリストが表示され、画面下部のステータスバーに何件中何件と重複しない数が表示されます。 以上、エクセル2000で試しました。

関連するQ&A