プロが教える店舗&オフィスのセキュリティ対策術

表題の通りです。

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

A 回答 (3件)

標題の「オートフィルターで指定した値」とは、「オートフィルタによる絞り込みの条件とした値」という意味でよろしいでしょうか?




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
    • good
    • 0
この回答へのお礼

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

>「オートフィルタによる絞り込みの条件とした値」という意味でよろしいでしょうか?
記載して頂いた通りの意味です。言葉があいまいで申し訳ありません。



教えて頂いたSUBTOTAL関数の方でうまくいきました!

ただ、VBAの方も試したのですがうまく動きませんでした。
オートフィルタの絞り込みの値を変更後、別のセルにフォーカスを移動させたのですが、数値が表示されませんでした。。。

お礼日時:2014/07/23 13:24

C列をオートフィルタした場合、その絞り込み項目は以下の数式で表示できます。



=INDEX(C:C,MAX(INDEX((SUBTOTAL(3,INDIRECT("C"&ROW($C$2:$C$100)))*ROW($C$2:$C$100)),)))
    • good
    • 7
この回答へのお礼

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

記載して下さった内容でうまくいきました!

お礼日時:2014/07/23 13:24

関数では無理な気がします。



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

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

そのものを取得することは、関数では無理なのですね。

SUBTOTAL関数を試してみようかと思います。

お礼日時:2014/07/23 13:15

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A