• ベストアンサー

オートフィルターで指定した値を取得したい

表題の通りです。 オートフィルターで指定した値を、別のセルに表示させたいのですが そのようなことは可能でしょうか?

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

  • ベストアンサー
回答No.2

標題の「オートフィルターで指定した値」とは、「オートフィルタによる絞り込みの条件とした値」という意味でよろしいでしょうか? A 列に数値データがあり、それを 1 種類の値のみに絞り込むという場合、次式によりその値を取得できます。この数式は、平均値を求めています。したがって A 列に複数の種類の値が表示されている状態では、小数などを返します。 =subtotal(1,a:a) 文字列などの数値でない値であっても取得するには、マクロを使います。オートフィルタがあるシートのシートタブを右クリック、「コードの表示」から表示されるコードウィンドウに次のコードを貼り付け。 絞り込んだ瞬間ではなく、その次にカーソルを動かした瞬間に、E1 セルに絞り込み条件となっている値を記入します。 Private Sub Worksheet_SelectionChange(ByVal Target As Range)   With Me     If .AutoFilterMode Then       With .AutoFilter.Filters(1)         If .On Then Range("e1").Value = Replace(.Criteria1, "=", "")       End With     End If   End With End Sub

Erin_all_right
質問者

お礼

ご回答ありがとうございます。 >「オートフィルタによる絞り込みの条件とした値」という意味でよろしいでしょうか? 記載して頂いた通りの意味です。言葉があいまいで申し訳ありません。 教えて頂いたSUBTOTAL関数の方でうまくいきました! ただ、VBAの方も試したのですがうまく動きませんでした。 オートフィルタの絞り込みの値を変更後、別のセルにフォーカスを移動させたのですが、数値が表示されませんでした。。。

その他の回答 (2)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

C列をオートフィルタした場合、その絞り込み項目は以下の数式で表示できます。 =INDEX(C:C,MAX(INDEX((SUBTOTAL(3,INDIRECT("C"&ROW($C$2:$C$100)))*ROW($C$2:$C$100)),)))

Erin_all_right
質問者

お礼

ご回答ありがとうございます。 記載して下さった内容でうまくいきました!

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

関数では無理な気がします。 自分が知る限りでは、表示されないセルを無視する関数は「SUBTOTAL関数」しかありません。 しかもExcel2003以降のバージョンでのみ有効なんですけどね。

Erin_all_right
質問者

お礼

ご回答ありがとうございます。 そのものを取得することは、関数では無理なのですね。 SUBTOTAL関数を試してみようかと思います。

関連するQ&A

  • オートフィルターの条件指定

    こんばんは。 セルA1に入力した値で始まる値を検索したく困っています。 素直にオートフィルターのオプションから指定すれば出来るのですが、 誰でも処理できるよう「セルA1に条件を入力。集計ボタンをクリック。」で済ませたいのです。 Selection.AutoFilter Field:=1, Criteria1:="=@@@* ", Operator:=xlAnd 上記@@@をセルA1に指定させる記述を教えて下さい。 よろしくお願いします。

  • ExcelVBA:オートフィルタをかけたシート上でのセル内の値参照について

    オートフィルタをかけた状態で、セル内の値を参照しても、オートフィルタがかかってないセル(隠れているセル)の値を参照してしまいます。 例えば、ある条件でオートフィルタをかけて、行が1,2、6,7、8・・・となって、3,4,5行が非表示になっているのにもかかわらず、 Range("A1").Offset(0, 2).Value を参照すると、6行目の値ではなくて、非表示の3行目の値を拾ってきてしまいます。 このように、オートフィルタをかけたシート上で値を参照する際に、非表示行を無視して行数取りし、値を参照したいのですが、何か方法はありますでしょうか? 上の例ですと、6行目のセルを3行目として扱いたいわけです。 どなたか、ご教授くださいませ。 よろしくお願い致します。

  • オートフィルタ後の、マクロでの値の参照に関して

    オートフィルタ後の、マクロでの値の参照に関して 下記を悩んでいます。教えて頂ければ幸いです。 マクロで、あるデーター表から、オートフィルタを使用し、必要なデーターを 抽出し、マクロ内に戻し、その後の計算で使用したいと考えています。 A列、B列、C列にそれぞれ、検索条件を指定し、オートフィルタ後、下記のような状態になります。 参照したい値は、D列になります。 下記のような例では、2.5と2.7の値をマクロ内に戻したいです。 (例:オートフィルタ後) 1行  A▼  B▼  C▼  D 16行 **  **   **  2.5   20行 **  **   **  2.7 *2~15行目は見えなくなっています。 *17~19行目は見えなくなっています。 セルを参照し、マクロ内に戻すには、どのような構文(マクロ)の記述が必要でしょうか? 【備考】 ・上記の例では、セルはD16、D20となりますが、抽出条件によっては、行番号が変わってしまいます。 ・抽出後のD列のデーター数は、常に2つです。 よろしくお願いします。

  • エクセルのオートフィルタなのですが。

    オートフィルターで表示した(可視セル)のみをコピーして、別の列にそのデータを貼り付けたいのですが、貼り付けると、オートフィルターで非表示になっているデータまでも張り付けされて困っております。 どのようにしたら解決できますか? ご存知の方いましたら教えてください。

  • Excelでオートフィルターをかけているのですが

    よろしくお願いします。 Excel2000でオートフィルターをかけ、 指定した内容のみを表示させています。 この表示されている数字だけをSUM関数などで 計算させたものを特定のセルに出したいのですが、 どうすればよいのでしょうか?

  • EXCELのオートフィルタ後の入力

    いつもお世話になります。 EXCELにてオートフィルタをかけた後の入力で下記の点をご教授頂ければ幸いです。 ・オートフィルタ後、通常時であればエンターキーを押すと一つ下のセルに移動するはずが、非表示になっているセルに移動してしまいます。 (1)フィルタで抽出されたC3で入力後、エンターキー → 抽出後表示された次のC15へ移動せずC8などの非表示のセルへ移動してしまう (2)と思えばC22で入力後、エンターキー → 抽出後表示されている次のC26へちゃんと移動 (3)↓キーを押した場合はオートフィルタで絞った表示されている一つ下のセルへ移動するのですが・・・ セルに値を入力後にエンターキーでオートフィルタで非表示になっているセルを全てスキップして表示されている直下のセルへ移動できないのでしょうか? 入力後↓キーで移動すれば問題ないと言われればそれまでなのですが・・・・・ どうにもスッキリしないので、ご教授頂ければ幸いです。 よろしくお願いいたします。

  • オートフィルターで・・・

    エクセルのオートフィルターを使って、何行かあるもののうちの指定したものだけの合計額を表示させたいのですが、それを選択しオートフィルターをかけると合計額の行が消えてしまいます。 今まで同じようにしてきたのに、突然このようになってしまったのです。行が多いと表示されないというわけじゃないですよね??? お願いします

  • オートフィルタで抽出された結果で2番目に大きな値

    エクセル初心者です。 オートフィルタで抽出された結果の中で2番目に大きな数字を別のセルに 表示させたいと思っています。 担当者 数字   A    1   B    2  C    3  A    4 上記のような表にオートフィルタをかけ、担当者Aを抽出します。 Aの数字の中で2番目に大きな数字は1ですので、別のセルには1と表示させたいと思います。 SUBTOTAL関数とLARGE関数の組み合わせができればと思いましたが、できそうにございません。 良い方法があればご教示よろしくお願い致します。

  • Excel2003 でオートフィルターの動きがおかしい

    Excel2003 SP2を使っています オートフィルタでは(1)ドロップダウンリストから抽出したいデータを指定する方法と、(2)直接抽出したいデータの入っているセルを選択してツールバーのオートフィルタのボタンを押す方法があります。 (1)の方法で指定した場合には問題ないのですが、(2)の方法でやると、たまに指定した列ではない別の列にフィルターがかかってしまう場合があります。たとえばE12のセルを選択してオートフィルボタンを押すと隣のF列にフィルタがかかり、F列のフィルタオプションを見るとE12のデータが指定されていたりします。いつもおこるわけではなく、またいつも隣の列とは限らず2つ隣の列にフィルターがかかるときもあります、データ量の多いファイルのときに起き易いようなきがします。 これはExcelのバグなのでしょうか、それとも操作方法になにか問題があるのでしょうか、よろしくお願いします。

  • EXCELでオートフィルタに失敗

    表題の件、初心者なので、どなたか教えて頂けると 有難いです。。。 現状は下記の通りです。 住所名前等のリストを作成し、ある列を 入力規則で「リストから選択」にしています (空白セルもあります) その列にオートフィルタをかけて、ある条件の ものだけを抽出していたのですが、リストが664を 超えたところから、それ以降の行はオートフィルタ に反映されません。 何か、オートフィルタの限界のようなものがあって、 一定の行までしか反映されないのでしょうか。 要領を得ない質問で申し訳ないのですが、 宜しくお願いいたします。

専門家に質問してみよう