- 締切済み
オートフィルタで選択したデータのみ残し、非表示のデータを削除する方法
オートフィルタで選択したデータのみ残し、それ以外のデータを消す方法があれば教えてください。 この作業を繰り返して、マスタを分割し、企業名ごとのファイルを作成したいのです。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- kuma3f
- ベストアンサー率63% (28/44)
企業名ごとのファイルを作成したいとのことですので、オートフィルタで選択したデータのみを別ファイルに抽出されてはどうでしょうか。 参考までにExcel2003でしたら次の手順で試してみてください。 Altキー押しながらF8キーを押します。 ↓ マクロのダイアログが表示されたらマクロ名に自由に名前を入力してください。(例:抽出) ↓ 名前を入力しましたら、「作成」をクリック ↓ Microsoft Visual Basicの画面が開きますのでSub 抽出()の下に次のコードをコピーして貼り付けてください。 Dim OUTファイル, シート名, ファイル名 As String Dim cnt As Long シート名 = ActiveSheet.Name cnt = 1 Do With Sheets(シート名).AutoFilter.Filters(cnt) On Error Resume Next ファイル名 = Right(.Criteria1, Len(.Criteria1) - 1) End With cnt = cnt + 1 Loop Until cnt > 256 Cells.Select Selection.Copy Workbooks.Add ActiveSheet.Paste Range("A1").Select OUTファイル = Application.GetSaveAsFilename(InitialFileName:=ファイル名 & ".xls") Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=OUTファイル Application.DisplayAlerts = True ActiveWorkbook.Close False Sheets(シート名).Select Sheets(シート名).Range("A1").Select '****コピー貼り付けはここまで **** Microsoft Visual Basicの画面を×で閉じます。 使い方は、オートフィルタで選択した状態でAltキー押しながらF8キーを押します。 マクロのダイアログが表示されるので先ほど名前を付けたマクロを選択して「実行」をクリック。 (選択されている状態でしたら、そのままEnterキーで実行されます。) 保存先を聞いてきますので保存先を指定して保存してください。 ファイル名は、オートフィルタで選択した名前がつくようにしています。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 見えているものを、範囲選択してコピーすれば、見えている分だけ、別のシートに張り付くはずですね。 削除するなら、補集合の考え方を用い オートフィルタで 「選択したデータのみ」が出ている反対、つまり、「選択していないデータ」つまり、オートフィルタの選択の中の、 「○○○の等しくない」データをオートフィルタで出して、消去すればよいのではありませんか?
- imogasi
- ベストアンサー率27% (4737/17069)
オートフィルタの方は、該当しないものの行を、非表示にするだけである。 オプションで(例)aと「等しくない」を指定して、削除しても、aの行は飛び飛びで、コピー等して別シートを作るのに適さない。 ーーー データーフィルターフィルタオプションの設定の方でやればよい 例 データ A1:B7 項目見出しは必須 データ 属性 a x s y d z a f s g a d ーーー F1:F2に データ a ーーー J1:K1にデータ 属性と入れておく ーーー A1:B7を範囲指定 データーフィルターフィルタオプションの設定 指定した範囲をON リスト範囲 A1:B7 検索条件範囲 F1:F2 抽出する範囲 J1:K20 OK で データ 属性 a x a f a d ーーー 別シートへ抜き出す方法 (以下は解説書に余り書いてない箇所ですから注意) 上例のデータがSheet2にあるとする。 Sheet3に抜き出し結果を出す場合 Sheet3のA1:B1にデータ 属性と入れておく そして データーフィルターフィルタオプションの設定 フィルタオプションのダイアロウグが出る。 指定した範囲をON リスト範囲 斜め矢印をクリックする。 シートタブSheet2をクリック (Sheet2の)A1:B7を指定。Sheet2!A1:B7が入る 検索条件範囲 斜め矢印をクリックする。 シートタブSheet2をクリック (Sheet2の)F1:F2を指定。Sheet2!F1:F2が入る F1:F2 抽出する範囲 Sheet3にもどって、A1:B20(Sheet3!は付かない) OK 結果 Sheet3 A1:B4 に データ 属性 a x a f a d ==== 大体この問題はVBAででも処理するのが、相応しい課題です。 ーー 関数でやるなら、中間列に該当行に連番を振って別シートに抜き出し方法(imogasi方式、WEB照会のこと)があるが、抜き出し会社が複数あるので、結果を値複写して、式を消す必要があり、素の段階の固定的内容になる。
- koko88okok
- ベストアンサー率58% (3839/6543)
ご質問の趣旨と少し違いますが、抽出されたデータを他のセルまたはシートに貼り付けする手順例を下記します。(Excel 2003 以前の場合) 1) コピーするセル範囲を選択します。 2) 「編集」→「ジャンプ」または「Ctrl+G」→「セル選択」→「可視セル」をオンにして「OK」を押します。 3) 「編集」→「コピー」または「Ctrl+C」で、点滅する破線が表示されます。 4) 貼り付け先のセルを選択して、「編集」→「形式を選択して貼り付け」→「列幅」をオンにして「OK」を押します。列幅がコピーされます。 5) 「編集」→「貼り付け」または「Ctrl+V」で、データが張り付けされます。 行の高さもコピーしたい場合は、1)でセル範囲に代えて、行範囲を選択します。 お試し下さい。