• ベストアンサー

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

Win2000、OfficeXPを使用しています。 以下のデータがあります。 A B 1 2 3 部名 Gr名 4 経理部 清算Gr 5 システム部 1Gr 6 システム部 1Gr 7 総務部 総務Gr 8 企画部 2Gr オートフィルタで例えば総務部を抽出して以下のようになった場合、 A B 1 2 3 部名 Gr名 7 総務部 総務Gr 抽出された項目名の直下の部名がA1にGr名がB1に自動で表示されるようにするにはどうしたらよいでしょうか?

  • jinah
  • お礼率40% (118/291)

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

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

細工が必要ですが、以下の方法でやってみてください。 データが、100行まで入っているとして、 (1)C列(が空いているとして作業用に)に3行目から1,2,3,・・・97と連番をふります。 (2)A1に =INDIRECT("A"&SUBTOTAL(5,C4:C100)+3)  B1に =INDIRECT("B"&SUBTOTAL(5,C4:C100)+3)  と入力します。 (3)3行目にオートフィルターを掛けます。 これで、通常どおりオートフィルターを掛けると1行目に抽出したデータが表示されます。 フィルターを掛けない時、先頭行のデータが表示されますが、これが期になるようでしたら、 A3行は空欄にしてください(ただし、連番はそのままです)

jinah
質問者

お礼

できました! INDIRECT関数は思いつきませんでした。 どうもありがとうございます。

その他の回答 (2)

  • deecyan
  • ベストアンサー率38% (89/233)
回答No.2

私は関数を作って 求めてます オプションとかトップ10なんか考慮しない時は =Hoge(範囲,何番目のフィルターか) 例 =hoge(A4:A8,1) Function Hoge(in1 As Range, Idx As Integer) If ActiveSheet.AutoFilter.Filters(Idx).On Then Hoge = ActiveSheet.AutoFilter.Filters(1).Criteria1 Else Hoge = "" End If End Function 今回のはこっちを使ったほうが無難かなぁ?(時間かかるけど) A1 に =hogehoge(A4:A8,1) B2 に =hogehoge(B4:B8,1) Function HogeHoge(in1 As Range, Idx As Integer) If ActiveSheet.AutoFilter.Filters(Idx).On Then For ii = 1 To in1.Rows.Count If in1.Cells(ii, 1).Height > 0 Then HogeHoge = in1.Cells(ii, 1).Text Exit Function End If Next Else HogeHoge = "" End If End Function

jinah
質問者

補足

初心者の為、hoge関数というのが全くわかりません。 どういった関数なのでしょうか?

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

>オートフィルタは操作で、結果を該当しないものを非表示にしているに過ぎず、表示で残された7行目の7と言う数字を人間の目以外が掴まえる術はないと思う。 従って本件は不可能でしょう。 私がつい先ほど答えを入れた他の質問NO.1090320を見てもらえば、オートフィルタは使いませんが、関数で解決するのではないかと思う。

関連するQ&A

  • オートフィルタ抽出データのみ

    エクセルで オートフィルタで 抽出するさいに その列に打ち込まれている内容が選択できますが その打ち込まれているものだけ 別シートにほしいのですが 方法はありますか? 下記のエクセルシートで フィルタした場合 Aの抽出データの「青 赤 黄」を別シートに  A  B  C  D 1 青 10 済 A社 2 赤 50 未 B社 3 黄 10 済 A社 4 赤 10 未 B社 5 青 11 済 F社 6 ↓  A  B  C  D 1 青 2 赤 3 黄 4 5 上記のようにしたい場合どうしたらいいかお願いします。

  • マクロでオートフィルターの抽出が出来ない

    下記のデーターをマクロで作成しましたが、2010/03/01は抽出するが、2010/03/02以降は デバッグが発生して上手くいきません。 どの様にすれば解決できるのか、ご教授お願いします。 現状) AファイルのA列のオートフィルタオプションで、抽出条件の指定にBファイルの C6をコピーして、「Ctrl」+「V」で貼り付け抽出すると2010/03/01の24時間分の データーが抽出されます。2010/03/02を抽出するとデバッグが発生する。 データーの詳細) Aファイルに「元データー Sheet」があり、A6~A44647に、 1ヶ月分の日付が記載されてます。 (B6~B44647には、24時間を1分間隔でのデーターがあります) A列の日付は、2010/03/01~2010/03/31のデーターがあり、 「セルの書式設定」を確認すると、「標準」設定で表記されてます。 オートフィルタによりA列の、各1日分のデーターを抽出させます。 Bファイルの「作成日指定 Sheet」のB3に2010/3/1を入力すると C6には「=$B$3」で「2010/03/01」と表示する様に「セルの書式設定」 「ユーザー定義」で「yyyy/mm/dd」を選択してます。(C36まで設定) 以下C7に「=$B$3+1」で、C8には「=$B$3+2」で、C36までで「2010/03/31」 と表示させてます。

  • オートフィルターで抽出後の集計 ユーザー定義関数

    以下のようなテーブルがあったとします。(図参照) A列 ID B列 数値A C列 数値B D列 抽出A E列 抽出B フィルターでD列E列で抽出した後に、B列の数値、例えば数値が1~3あるとします。 それぞれ1~3のC列の数値の合計の式をユーザー定義関数で作ることは出来ますでしょうか? コードかけません宜しくお願いします。 式1 フィルター抽出後のB列の1という数字のみのC列の数値の合計 式2 フィルター抽出後のB列の2   同様 式3 フィルター抽出後のB列の3   同様 VBAの知識はあまりありませんが、モジュールの追加とコードを貼り付ける作業は出来ます。 エクセル2013 64bitです。 宜しくお願いします。

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

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

  • オートフィルタ抽出データをコピーするマクロについて

    マクロについて勉強中の者です。 "Sheet1"にあるデータをオートフィルタで抽出し、 "Sheet2"に抽出データのみをコピーをしたいと思っています。 Range("A10:G59").Select Selection.ClearContents With Worksheets("Sheet1").Range("A1") .AutoFilter .AutoFilter Field:=1, Criteria1:="○" .CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Worksheets("Sheet2").Range("A9") End With End Sub としてみたのですが、 これを実行すると、オートフィルタが1行目(A1)ではなく、 2行目で設定されてしまい、抽出データがずれてしまいます。    A    B    C 1 品 名  仕入先  発注数 ←タイトル行に設定したい 2 りんご  ヤマト   10  ← この行に▼が設定される 色々調べた結果のマクロなので、どこが悪いのか見当がつきません。 解りやすく教えていただける方がおられましたら、よろしくお願い致します m(__)m

  • エクセルのオートフィルタでのデータ抽出&カウント

    エクセルのローデータでのオートフィルタでのデータ抽出&カウントで困っています。 A列にNo.、B列にデータB、C列にデータC、D列にデータDがあるとします。 それぞれの列に1~9までの数字があり、 それぞれの列、 データの一番下(正確には1行開けて)にはSUMやCOUNTIFなどの関数(計算式)が入っています。 で、これをフィルターにかけ抽出した際、この抽出したデータのみで計算の値を表示したいのですが、 やってみると 全データの計算の値で表示されてしまいます。 どうすればよいのでしょうか? 大変困っています。 よろしくお願いいたします。

  • オートフィルタ抽出データに連番をつけるマクロ

    オートフィルタで抽出したデータに連番をふりたいと思っています。このサイトで調べた結果、オートフィルタをかけてのオートフィルでの連番入力はできないと知りました。 現在しようとしているのは   A  B  C 1 クラス NO 氏名   2 1    ○△ 3 2    □× 4 1    ★♪ というデータがあり、項目にオートフィルタをかけている状態です。クラスを抽出した場合にそのクラスでの通し番号(連番)を付けたいのです。SUBTOTAL関数だと、連番が表示されるのはオートフィルタで抽出している間だけです。SUBTOTALでつけられた連番を、オートフィルタを解除しても残しておくにはどうしたらよいでしょうか。やはりコピー&ペーストしかないのでしょうか?似たような質問が多々ありますが、コピー&ペースト以外の方法をご存知の方、どうか教えて下さい。

  • フィルタオプションでのデータ抽出に関して

    お世話になります。 現在、約9000件あるデータの中から必要なデータを抽出できるようにするものを作成しています。 数式で抽出しようとしましたが、データ量の多さから計算に時間が掛る為、フィルタオプションを使ってデータを抽出しようと考えています。 データは下記のようになっています。 Sheet名:「積算データ」 項目 名称   適用   備考   施工  労務費 A    B     C     D     E     F 36  電線管  GP-19        隠ぺい  100 36  電線管  GP-22        隠ぺい  100 36  電線管  GP-28        隠ぺい  120 37  電線管  GP-16        露出   80 37  電線管  GP-22        露出   100 37  電線管  GP-28        露出   100 (以下、約9000行データが続きます) 別シートにデータ検索用シートを作っています。 シート名:「データ検索用」 名称 適用 備考 施工  A   B   C   D                   ←各セルに条件入力 さらに別シートにデータ抽出用シートを作っています。 シート名:「データ抽出用」 フィルタオプションの設定に関しては、 リスト範囲:積算データ!A1:F9000 検索条件範囲:データ検索用!A1:D2 抽出範囲:データ抽出用!A3 と設定しています。 というような構成なのですが、データ検索用シートで、各セルに条件を入力し(例えば、A列に電線管、B列にGP-19 D列に隠ぺいと入力)、データ抽出用シートにデータを抽出しても、積算データシート内のデータ全てが抽出されてしまいます。 検索条件どおりのデータを抽出するにはどうすればいいでしょうか??

  • オートフィルタについて(再)

    excelにて下記のようなファイルを作成しました。 項目にてオートフィルタを実行し、抽出したい項目を 選択するのですがうまく抽出できません 1 品名 サイズ 員数 2 A  100  300 3    200  400 4 B   500  600 (品名2行目、3行目はセルの結合を実施しています。) ↓品名にてオートフィルタを実施 品名 サイズ 員数 A  100 300 2行目が抽出されない。 うまく抽出できる方法ありますでしょうか? よろしくお願いします

  • Excel2010 フィルタで抽出できない

    Excel2010(WindowsXP)のフィルタ機能で抽出できない場合があるようなのですが そういうものでしょうか? 以下のような10000行以上の重複しない14桁のデータで 10000行目の前後に空白セルがある場合 フィルタでB列の「10000000010003」以降のデータが抽出できません。 左からA列、B列 a b 1 (空白セル) 2 10000000000002 3 10000000000003 4 10000000000004 5 10000000000005 (この間も連続データ) 9997 10000000009997 9998 10000000009998 9999 10000000009999 10000 10000000010000 10001 10000000010001 10002 10000000010002 10003 10000000010003 10004 10000000010004 10005 10000000010005 10006 10000000010006 10007 (空白セル) 10008 10000000010008 10009 10000000010009 10010 10000000010010 ---

専門家に質問してみよう