• 締切済み

エクセルで特定の行だけ選んで表示させる方法

エクセルで8000行20列位あるデータの中から A列に30という数値の入っている行と A列が空白になっている行を抽出し なおかつ元のデータをその抽出したデータだけに置き換えたい (A列が30と空白以外の行は削除してしまいたい) のですがどのような方法がありますか? なお、毎月同じような行数のデータを、同じように加工しなければ ならないので簡単に出来るやり方を教えて下さい。 宜しくお願いします。

みんなの回答

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

(1)VBAで行う (2)フィルタオプションの設定で行う (2)は別シートに出すのにコツがいります。 ーー 空白セルは扱いがややこしいので、99に置換しておきます。 下記の99は元は空白セル。(本番では99は多で起こらない値を考えてください) コード 計数 30 12 99 11 21 12 22 14 11 34 30 25 23 5 30 4 99 11 15 10 ーーー Sheet2のD1:E3に コード 計数 30 99 と条件を作っておく。 ーーーー Sheet2を選択しておく。 データーフィルターフィルタオプションの設定 ダイアログが出るが 指定した範囲をON リスト範囲 Sheet1!$A$1:$B$11 検索条件範囲 $D$1:$D$3 抽出範囲  $A$1:$B$19 と選択して(各々の斜め矢印をクリックして、範囲を選択すればよい、シートの選択はシートタブのクリック) OK 結果 コード 計数 30 12 99 11 30 25 30 4 99 11 ーーー >元のデータをその抽出したデータだけに置き換えたい は元へ(Sheet1)へコピー張り付けすればよい。 >毎月同じような行数のデータを、同じように加工しなければ ならないので簡単に出来るやり方を教えて下さい マクロの記録をとると Sub Macro1() Sheets("Sheet1").Select Range("A2:A11").Select Selection.Replace What:="", Replacement:="99", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False '以上置換操作 '以下フィルタオプション Sheets("Sheet1").Range("A1:B11").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("D1:D3"), CopyToRange:=Range("A1:B19"), Unique:= _ False End Sub これを下記に修正する。 (1)データ行の多少、毎月で最終行の変動 (2)Sheet1,Sheet2の両方が対象になることを明確化に対応。 Sub Macro1() Worksheets("Sheet1").Select d = Worksheets("Sheet1").Range("A65536").End(xlUp).Row Worksheets("Sheet1").Range("A2:A" & d).Select Selection.Replace What:="", Replacement:="99", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False '--- Worksheets("Sheet1").Range("A1:B1" & d).AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Worksheets("Sheet2").Range("D1:D3"), CopyToRange:=Worksheets("Sheet2").Range("A1:B1000"), Unique:= _ False End Sub ーー 結果は手操作と同じになりました。 ーー 空白は99などに置き換えなければダメかどうかゆっくり検証できないので、とりあえず急いで上記でまとめた。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

次の方法は如何でしょうか。 データ表シートをsheet1、見出し行が無い場合、任意の見出し行を挿入して下さい。 (1)別シートにA1を空白、A2に=OR(sheet1!A2=30,sheet1!A2="")(2)B1,B2を選択→データ→フィルタ→フィルタオプションの設定→警告ボックスはOKとして下さい。 (3)以下の操作をマウスで実施した方が簡単です。   ・指定した範囲にチェックを付け   ・リスト範囲欄に表範囲を設定   ・検索範囲欄に$A$1:$A$2   ・抽出範囲欄に$B$1    以上を設定後→OK

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

列の先頭行が項目行なら「データ」「フィルタ」「オートフィルタ」を設定 A列の先頭セルを選択、右に出る▼を押してオプションを選択 「30」「と等しい」 「or」 「」「と等しい」 でEnterするとご希望の行のみ選択した状態になります。 範囲全体をコピーして、あたらしいシートに貼り付けすれば 不要な行を削除できます。