• ベストアンサー

オートフィルターで抽出したデータを他のセルに表示させる方法

こんばんは。 下記のようなマクロを組みたいのですが、 どなたかアドバイスをよろしくお願いいたします。 A2からB10までの表があります。 (2行目が項目でオートフィルターをかけてあります。) B列には「イチゴ」「メロン」「りんご」というデータがはいっています。 B列でソートをかけて 「イチゴ」を選んだ場合は、B1のセルに「イチゴ」と 表示させる。 同様に「メロン」を選んだ場合は、B1に「メロン」、 「りんご」を選んだなら「りんご」と表示させるようにしたいのですが、いい案を教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • takibo
  • ベストアンサー率57% (116/200)
回答No.2

>B列でソートをかけて →→ 「フィルターをかけて」という意味と解釈します。 まず、ご希望とはそれてしまいますが関数の方法を紹介します。(なので参考程度に思ってください) A列の内容がわからないので通し番号と仮定して、以下のようになっているとします。   A   B 1 2  No.  名前 3  1  りんご 4  2  メロン 5  3  メロン 6  4  イチゴ 7  5  りんご 8  6  イチゴ 9  7  メロン 10 8  りんご そして B1 に   =IF(SUBTOTAL(3,A3:A10)=COUNTA(A3:A10),"",VLOOKUP(SUBTOTAL(5,A3:A10),A3:B10,2,0)) と入力します。 ・表示されているA列の空白を除く個数が全データの個数と等しいの場合(フィルターがかかっていない場合)は表示しない ・フィルターをかけた結果のA列の最小値からVLOOKUP関数でB列の内容を検索 (最大値でもかまいません、その場合SUBTOTAL関数の引数は 4 です) オートフィルタで何かを選択(抽出)しただけではイベントは発生せず 無理やり何か他のアクション(アクティブセルを変更する、再計算する、など)を付け加えなければイベントプロシージャは動かないようです。

参考URL:
http://www.amy.hi-ho.ne.jp/~lepton/program/p3/prog341.html
toile
質問者

お礼

ビンゴ! って感じでした! 関数ではできないと思いこんでしまっていました。 発想の転換ってすばらしい!かなり感動です。 思い描いていたものが出来ました!感謝感謝です! ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • masa_019
  • ベストアンサー率61% (121/197)
回答No.1

オートフィルターとかソート・・・とありますが、 結果的には、B1に選択したセルの値が入れば良いのですよね。 表のあるシートのモジュールに、 Private Sub Worksheet_SelectionChange _ (ByVal Target As Excel.Range) If Intersect(Target, Range("B2:B10")) Is Nothing Then Exit Sub Range("B1").Value = Target.Value End Sub ということで良いように思いますが、どうでしょうか。 やりたいことと違っていたらごめんなさい。

toile
質問者

お礼

こんばんは! ご回答ありがとうございました! 自分で質問しておいてなんなんですが、 VBAは私には難し過ぎたようです・・・・・・。 基礎から勉強してみます! ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • オートフィルターによって、抽出したセルにだけペーストしたい。

    例えば、 5行ごとの世帯表があります。 A列には氏名が入力されています。 2人世帯は2行しか使いませんので、下3行は何も入力されていない行です。 つまり、10世帯分で100行あり、その中に合計38名分の氏名が入力されています。 列を挿入して、B列に新しい列を作りました。 この列に、別シートの同じ世帯員の生年月日が入力された列(ブランクの無い38行の38個のセル)を貼り付ける場合、どのように貼り付けるのでしょうか。 オートフィルターで、A列の空白セルを除いてから貼り付けたら、オートフィルター解除後、空白セルにも貼り付いてしまったので、ずれてしまいました。 オートフィルターで、省いた(隠した)セルに貼り付かないように貼り付けるにはどうすればいいのでしょうか。

  • エクセル オートフィルター

    オートフィルターについて教えて下さい。 同じシート内で、独立した複数のオートフィルターを用いることは出来ますか。下に示すような場合にAとB列に独立してオートフィルターを設定して、果物を抽出して、CとD列には野菜だけを抽出する。みたいなイメージです。オートフィルターやマクロを用いないやり方で他のやり方でもできる場合は教えて下さい。    A    B      C    D 1  りんご 果物   りんご  果物 2 キャベツ 野菜  キャベツ  野菜 3  イチゴ 果物   イチゴ  果物

  • オートフィルターで抽出されたデータの参照方法について

    1000件以上のデータをA,B、C列にオートフィルターをかけて抽出されたデータのA,B、C列およびD列目の値を参照する式を組みたいのですが、当然のことながらオートフィルターをかける都度、表示されるセル番地が変わるので式がくめません。 多分、マクロでコピーしてどこかにペーストすればいいのでしょうが、まったくわかりません。お教えください。

  • エクセルのオートフィルタ!

    先日も質問させて頂いたのですが、上手く伝わらなかったようなのでもうもう一度お願いします! エクセル2000を使用しています。 たまにオートフィルタができなくなるときがあるのですが、どういうことだかわかる方いらっしゃいますか? 例えば、    A  B  C  D  E ・・・ 1 トマト 2 ミカン 3 メロン 4 イチゴ 5 トマト 6 メロン 7 トマト 8 イチゴ とあるとすると、普通オートフィルタをかけると、ドロップダウンリストにトマト、ミカン、メロン、イチゴ、トマトが表示されて、メロンを選択したら、メロンが2行表示されますよね? でも例えば、トマトしかリストに表示されない、ということなのです。 1000件超えてないものでもなるんです。 解決方法教えてください!

  • オートフィルタ利用のデータ投入について

    Excel2007を利用しています 例えば、1行目~8行目に下記のデータがあるとします a,b りんご みかん りんご みかん りんご みかん りんご a列の「りんご」のデータに対して、b列に「購入」の文字を 入れたいと思います そこで、1行目にフィルターをかけて、「りんご」だけを表示させます 2行、4行、6行、8行の「りんご」のデータだけが表示されます 表示された「りんご」のデータに対して、セル(b,2)に「購入」と 入力し、セル(b,2)を選択してカーソルをドラッグして、4個のデータ に「購入」文字を入れました。 次に、フィルターを解除して全件データ表示すると「りんご」のところ に「購入」と記載したつもりが 2、3、4、5行の所に「購入」のデータが入ってしまいます フィルターを利用してこのように一括してデータ投入をする方法はないでしょうか とりあえずは関数を利用して利用しているのですが・・・ 関数を利用しないで、便利な方法があれば教えていただけませんか よろしくお願いします。

  • オートフィルタで非表示セルの判定

    オートフィルタでフィルタ後、表示されない行にあるボタンを消したいのですが表示されていないセルの判定方法がわかりません。 下のマクロではエラーが出ます。 よろしくお願いします。 If ActiveSheet.Range("a10").Visible = False Then ボタンを消すマクロ End If

  • オートフィルタの抽出結果をマクロで表示するには?

    A 1000  D 200 A 500 A 1000 B 2000 上表をオートフィルタでA及び1000で絞ると左下に『4レコードで2個です。』と抽出個数が表示されると思いますが、その個数(2個)をマクロを使って表示させるにはどうすればいいでしょうか? マクロの記録でオートフィルタをかけるところまではできるのですが、個数表示で壁にぶち当たっています。 ちなみに1000を検索させて個数を出すという方法もありますが、2行目のデータが他の行にもあるため、データを検索させて個数を導くマクロは作られないので、オートフィルタからのマクロを作成しています。 マクロ初心者のため、分かる方いらっしゃいましたらご教授をお願いします。

  • Excel VBAでオートフィルタで抽出したデータの一部だけ貼り付けるには

    いつもこのコーナーでは皆様にお世話になっております。以下のVBAマクロが組める方ご教示ください。 Sheet2にあるデータに複数条件でソートをかけ、ある数字(1から18まで)を入れたら、オートフィルタでE列のデータの選択部をSheet1のある部分に1行貼り付けるという作業です。以下のInputBoxに数字を入れるところからです。 (ソート後、どの数字を入れるか判断) ↓ InputBoxにある数字"○"(1から18まで)を入れる ↓ オートフィルタE列「"○-"で始まる」or「"-○"で終わる」 ↓ 抽出されたデータのE列(1列だけ)のデータ(上から17個分)を選択 ↓ 選択部をコピー ↓ Sheet1を選択。Sheet1の"K5"セルに行列を入れ替えて貼り付け という流れなのですが・・・ わかる方教えてください。よろしくお願いします。

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

    オートフィルタ後の、マクロでの値の参照に関して 下記を悩んでいます。教えて頂ければ幸いです。 マクロで、あるデーター表から、オートフィルタを使用し、必要なデーターを 抽出し、マクロ内に戻し、その後の計算で使用したいと考えています。 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つです。 よろしくお願いします。

  • オートフィルタを使用しないで 抽出したい

    こんにちわ 教えてくださいませ こういったデータベース(ア)があります -----A---B 1 予約 田中 2 3 4 予約 橋本 5 6 7 8 9 受付 滋賀 10 11 12 13 終了 森本 14 15 これを こういったデータベース(イ)にしたいのです -----A---B 1 予約 田中 2 予約 橋本 3 受付 滋賀 4 終了 森本 5 6 7 8 9 10 11 12 13 14 15 オートフィルタを使わない理由はマクロでは オートフィルタをつかえないですよね? (つかえるんですか?) (ア)のデータベースは頻繁に更新されるため なんらかのマクロを組んで ボタンひとつで処理したいのです ピポットテーブルも使いたくないのです (予約、受付などの項目が一定ではないので) つまり、空白のセル(行)を自動に 間詰めしてくれるマクロは どうすればいいのでしょうか? よろしくお願いします。 結構困ってます そもそも出来るのかどうかもわかっておりません

専門家に質問してみよう