dポイントプレゼントキャンペーン実施中!

オートフィルタについての質問です。
オートフィルタにて絞り込む際にプルダウンに表示されている、種類の数を
カウント(チェックボックスの数)したいのですが、ご教授頂けますように
お願いします。

画像では、A,B,C,D,E,Fの6種類という数が知りたいです。

---------------------------------------------------------
使用ソフト:Excel2010
使用条件 :関数、マクロ、VBAでも問題ありません。
---------------------------------------------------------

宜しくお願いします。

「オートフィルタについての質問です。」の質問画像

A 回答 (3件)

#2です。

考えてみたらA列って、ちょっと使いにくいですね

選択列(セル)の可視セル(2行目から)の重複しないデータの数です。

Sub Sample1()
Dim dic As Object, c As Range
Dim LastRow As Long, col As Long
  Set dic = CreateObject("Scripting.Dictionary")
  col = Selection.Column
  LastRow = Cells(Rows.count, col).End(xlUp).Row
  For Each c In Range(Cells(2, col), Cells(LastRow, col)).SpecialCells(xlCellTypeVisible)
    dic(c.Value) = 0
  Next
  MsgBox dic.count & "件です"
End Sub
    • good
    • 1
この回答へのお礼

助かりました

Qchan1962さま

 閲覧とご回答ありがとうございます。

まさに私が求めていた希望通りの結果を得る事が出来ました。
誠に有難うございます。

 自由度の高さでは、No.3のご回答の方が良さそうですが、
私が携わっている業務には、No2.のご回答の方が適していると考えております。

 No.2,No.3共に目から鱗で大変感動し、満足しております。

 今後も機会が有りましたら、ご教授の程宜しくお願いします。

お礼日時:2020/09/20 23:00

こんばんは、


>VBAでも問題ありません。
少し面倒な気もしますが、こんな感じでいかがでしょう。(A列2行目からです)

Sub Sample()
  Dim dic As Object, c As Range
  Set dic = CreateObject("Scripting.Dictionary")
  For Each c In Range("A2:A" & Cells(Rows.count, "A").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
    dic(c.Value) = 0
  Next
  MsgBox dic.count & "件です"
End Sub
    • good
    • 1

企業で統計を推進する立場の者です。



フィルタとは無関係に、その範囲にあるカテゴリ値のケース数を数え上げる作業になります。

=SUMPRODUCT(1/COUNTIF(データ範囲,データ範囲))

で求められるハズですので、やってみて下さい。

ただし、やってみて確認したところ、検索範囲に空欄があるとエラーになるみたいです。
    • good
    • 1
この回答へのお礼

Thank you

kamiyasiroさま

 早々の閲覧とご回答ありがとうございます。

ご教授頂いた通り、データ範囲内の種類の数を数える事が出来ました。
はじめて知る内容なので大変勉強になりました。

しかし、フィルタを用いて絞り込んだ場合の可視セル状態での
種類の数を数える事が出来ませんでした。

 希望の作業としては、フィルタの可視セルに応じて、何種類あるかを
知ることが出来れば最良です。

 新たな方法をご教授頂きまして、ありがとうございました。

お礼日時:2020/09/20 15:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!