• 締切済み

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

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

  • fusabo
  • お礼率55% (182/329)

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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% (7418/18948)
回答No.1

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

関連するQ&A

  • Excelで特定の数値が入った行の別列の数値を集計

    ExcelのA列にそれぞれ空白 or 1、2、3いずれかの値が入っています。 B列には行ごとに異なる数値(1、2、3、4)が入っています。 A列とB列の行数は同じです。 それぞれの数値を下記の通りにまとめたいと考えています。 ・A列に「1」が入っている行のB列の数値を集計し、その数をA100に入れる ・A列に「2」が入っている行のB列の数値を集計し、その数に1.5を掛けた値をA101に入れる ・A列に「3」が入っている行のB列の数値を集計し、その数に2を掛けた値をA102に入れる 上記はどのような計算式で実現できるでしょうか? よろしくお願いします。

  • Excelで空白行を削除したい

    他の書類からExcelにコピペしたんですが、もとの書類の書式のせいか偶数行が全て空白行になっています。 実際に必要なデータは奇数行の各列に並んでいます。 見づらいので空白行(または偶数行でも同じ)を削除したいんです。 行数が500を超えるので、一行づつ行の削除をやっていると大変な手間です。 一発でやる方法はないでしょうか?

  • エクセル:特定の行のみ抽出

    たくさんデータがあるなかで、 A列にはデータがあるけど、B列にはデータが入っていない行のみを抽出するにはどのような作法でを使えばよいでしょう。

  • 2行目と3行目を1行目に右側につけて、空白を削除してつめるコードが知りたいです。

    1 2 3 4 5 6 7 8 9 . . . A1「1」、A2「2」、A3「3」A4空白、A5「4」、、、と言う風なデータがあるの ですが、 これを 123 456 789 ... と言う風に2行目と3行目を1行目に右側につけて、空白を削除してつめるコー ドが知りたいです。 実際のデータは数値ではなく文字列です。 よろしくお願いします。

  • マクロを使って特定の文字の入った行を非表示にしたいのですが・・

    エクセルのマクロを使って 自分の選択した範囲内で L列に"摘要"かつK列に"金額"の文字が入っている行と L列が空白かつD列も空白である行 を削除するようにするにはどうしたらよいでしょうか 仕事の中でこれがマクロでできるようになるとすごく便利なので・・。よろしくお願いします。

  • エクセル、行数をカウントしたい。

    エクセル初心者です。 よろしくお願いいたします。 エクセルでこのような表を作っています。   A  B  C 1 10 15 2 20 3    10 4    15 5 10 6 10 10 7 8 この時、データの入っている行数をカウントしたいのです。 上の例では 「6」 です。 途中に空白の行はありません。 A列、B列にはどちらにも数字が入る場合と、どちらかにしか 入らない場合があります。 なので COUNT は使えないですよね? 今まではデータを入力後、下の空白の行を削除し、C列で COUNTBLANK として求めていたのですが、表の長さ(行数)が一定でないため、 体裁が悪くなってしまっていました。 希望としては。 最終行のC列に「終了」などと入れると、その文字列を判別 してくれて、それより上の行数をカウントしてくれる。 または 例えば OR を使って、A列B列どちらかにデータがある 場合のみ、カウントしてくれる。 こんなワガママなことができたら、と思っております。 補足が必要ならばいたします。 それと、遅くなるかもしれませんが、お礼は必ずさせていただきます。

  • エクセルのファイル中の空白行を削除する方法

    エクセルのファイルでデータ入力されているものがあるのですが 空白の行があり,それを削除したいのですが たくさんあって手作業では大変です。 マクロなどでうまく自動的に削除できないものでしょうか? 因みにデータはA列にのみ入力されてます。 宜しくお願いします。

  • エクセルVBAでデータ最終行取得方法

    エクセルVBAでデータ最終行取得方法で良い方法を教えてください。 データの行数、列数は不定。 最多のデータ行の列も不定。 この条件で、データ最終行を取得するにはどうすればよいでしょうか? lastrow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row では、A列の最終行に限定されます。 lastrow = ActiveSheet.Cells(1, "A").SpecialCells(xlLastCell).Row では、列の限定はありませんが、一旦データ入力後、削除した部分まで入ってしまいます。 lastrow = ActiveSheet.UsedRange.Rows.Count では、データ入力後、削除した部分まで入ってしまい、かつ、1行目など上部が空白の場合、不正確になります。

  • エクセルで、データのある行だけを抽出したい。

    エクセルのSheet1にデータが入っており、セルが空白でない行のデータのみを、Sheet2に抽出したいと思っています。 Sheet2にあらかじめ関数を入れておく方法にしたいため、関数について教えてください。 タイムテーブルで予定を管理するような表で、A~Hまでにデータが入っています。 予定を入れる際にはE列には必ず入力をするため、E列が空白でない行のみを抽出したいです。 A|B|C|D|E|F|G|H 月|日|時間|… 11|22|10:00|… 11|22|10:30|… 時間枠は10:00~17:00の30分刻みで、1日15行使用するので、1年で5475行まで使用します。 1行目はタイトル行なので、データは2行目から入力しています。 フィルタオプションで抽出する方法や、それをマクロで登録しておく方法は分かったのですが、あとから予定を追加することがあるため、マクロを実行する度にデータが置き換わると困ってしまいます。 また、抽出したSheet2のI列以降には備考などを入力したいため、やはり後から列がずれると困るため、A~H列に関数を入れておく方法で実行したいと思います。 よろしくお願いいたします。

  • エクセルで数字が入力されている行の数を出したい

    エクセル2000を使用しています。 数百行くらいのデータがあります。 C列は数字の1、2、9、が入力、又は空白となっています。 最下行3行にそれぞれ1、2、9が入っている行の数を出したいの ですが、どのようにすれば良いのでしょうか? 1、2、9の和を求めているのでは無く、入力されている行数を 出したいのです。

専門家に質問してみよう