• 締切済み

Excelで奇数行を削除

題名通り、奇数行を一括に削除する方法をご存じの方はご教授下さい。 ○○┌────┬────┬─────┬── 1行 │(空白)│文字列 │(空白) │ 2行 │ 文字列 │文字列 │ 数式 │ ○○└────┴────┴─────┴── 3行 │(空白)│文字列 │(空白) │ 4行 │ 文字列 │文字列 │ 数式 │ ○○└────┴────┴─────┴── この形式が数段、数シートに渡ってあります。 ○○┌────┬────┬─────┬── 1行 │ 文字列 │文字列 │ 数式 │ ○○└────┴────┴─────┴── 2行 │ 文字列 │文字列 │ 数式 │ ○○└────┴────┴─────┴── 上記のように2行を1行にしたいのですが、一括でできるのでしょうか。 よろしくお願いします。

みんなの回答

回答No.4

自信はありませんが、複数シートを一度にというのであればVBAマクロを使うと良いと思います。 ツール→マクロ→Visual Basic Editor から 挿入→標準モジュール を開いて そこに次の---の間にある マクロを貼り付けてください ただしこれは A列が1行おきに空白だということを前提にしています。 もとのデータが壊れると大変ですので一度保存してから上の作業をしてください。 ------------------------ Sub 不用行削除() Dim i As Integer Dim R As Long Dim LastR As Long Application.ScreenUpdating = False For i = 1 To Worksheets.Count Sheets(i).Select LastR = Range("A" & Rows.Count).End(xlUp).Row For R = LastR - 1 To 1 Step -2 If Range("A" & R) = "" Then Range("A" & R).EntireRow.Delete End If Next R Next i End Sub ------------------- 説明が下手ですが i は シート数をカウントするための変数 R は 削除する行を決めるため LastR は データのある最後の行を求めています。 いくつのシートがあるかまた何行までデータが入っているかを調べて、各々のシートごとに 最後の行の1つ上のA列は空白のはずなので2行おきに削除するようにしています。これを使えば奇数行にデータが入っていて遇数行が不用でもOKだと思います。

tetsujinn
質問者

お礼

ありがとうございます。 1行ごとの全ての行が空白とは限らないので使えませんでした。空白だったら、ばっちりです。

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

関数で「行削除」列削除はできません。関数は値を計算するが、行や列を削除したり、幅や色や書式に関することを左右できません。 だから、別シートや別セルの区画に「抜き出す」と考えればよいのです。 Sheet2にあるデータの偶数行を抜き出すには Sheet3のA1に =INDIRECT("sheet2!a"&ROW(A1)*2) と入れて式を縦方向に複写すればよい。 Sheet4の分ももやりたいなら、Sheet2のデータ行の半分で式の複写をやめ、Sheet4用の式を入れて、そこから下に式を複写すればよい。 =INDIRECT("sheet4!a"&(ROW(A13)-12)*2) のようになります。 Sheet2の半分が12行(全体で24行)で終わる場合の例です。

tetsujinn
質問者

お礼

ありがとうございます。 早速試したのですが、2列目、3列目、・・・・がうまくできませんでした。それと、数式の値だけが表示されます。

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

行先頭の列が常に空白なら、その列を基準に並び替えを行い、不要な行を一括削除すれば簡単ですが、如何でしょうか。 並び替え:データ⇒並び替え⇒最優先されるキー(例えばA列)

tetsujinn
質問者

お礼

ありがとうございます。 空白ばかりではないので、試したのですが一行ずつ削除することが出来ませんでした。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 単純に削除するだけなら、作業列を準備して、1行目に、 =MOD(ROW(),2) と入力して、データ最下行までコピーします。 これで、奇数行が「1」、偶数行が「0」をなりますので、 後は、この列で「1」でフィルタリングして削除すればいいと思います。 終わったら、作業列は削除して下さい。

tetsujinn
質問者

お礼

早速ありがとうございます。この方法ですることは出来ました。しかし、複数シートを一括にできないでしょうか。

関連するQ&A

  • excelで2行を1行に

    excelで2行の罫線枠中に上段:空白、下段:文字列とか、上段:文字列、下段:文字列のように様々な罫線枠内を1行に結合したいのですが、 ○○┌────┬────┬─────┬── 1行 │(空白)│文字列 │(空白) │ 2行 │ 文字列 │文字列 │ 数式 │ ○○└────┴────┴─────┴── この形式が数段、数シートに渡ってあります。 ○○┌────┬────┬─────┬── 1行 │(空白)│文字列 │(空白) │ ○○│ 文字列 │文字列 │ 数式 │ ○○└────┴────┴─────┴── 上記のように1行に上下に結合したいのですが、こんなことできるのでしょうか。 何卒、ご教授下さい。

  • excelで奇数の行のみ削除したい

    excelで奇数の行のみ削除したいんですが、やり方を教えてください。現在2000行、10列くらいデータが書き込まれています。行は偶数行しかデータは書き込まれていません。そこで、奇数行をすべて削除したいんですが、やり方がわかりません。ご存知の方、よろしくお願いいたします。

  • 数式を奇数行と偶数行を別々に貼り付け!

    数式を奇数行と偶数行を別々に張り付け の方法ってあるんですか?? Sheet1で計算表をつくっています。 B列~列Hまで1行と2行を結合さしていて、I列~X列は1行、2行別々です。 I列~X列に1行2行別々の数式をいれたいんです。 偶数行に =IF(Sheet2!AC52="","",IF(Sheet2!AC52<2,"<",ROUND(Sheet2!AC52,2))) として、2行・4行・6行・・・・ 奇数行に =IF(Sheet2!D52="","",IF(Sheet2!D52<Sheet2!$B52,Sheet2!$A52,ROUND(Sheet2!D52,4))) として、3行・5行・7行・・・・ でいう感じでしていきたいんですが、関数はありますか?? 関数以外でも方法があれば教えてください。 お願いします。

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

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

  • 【マクロ】特定の位置から奇数の行を削除する方法

    9列目から、奇数の列を削除するマクロの式がわかりません。 説明では分かりにくいので画像を添付しております。 ☆1項目2列使っている表を1項目1列にしたい。 (1)グラフの二行目をすべて削除し、上詰めしたいです。 ※9,11,13~と削除していきたい。 (2)このシートの表の終わりは15列目になっていますが、他のシートは25列で終わりだったりとばらばらです。(表の始まりはどのシートも同じ列、行です。) (3)列を削除した際、表の下線が消えると思います。消した線も復活させたいです。 (4)そして、すべてのシートでこのマクロの処理をしたいと考えているので、 「表が終わるまでこの処理をする」というマクロも知りたいです。 分かりにくい文章、また、複数の質問になりますが、 マクロ初心者で大変困っています。どなたか回答をお願いいたします。

  • 空白行削除

    宜しくお願いします。 1枚のファイルシートに14ブロックのデータが貼り付けてあります。各ブロック行の長さは違く、ランダムに貼り付けてあります。例えば、データ 何百行の空白 データ…と繰り返されており、約3万5千行ぐらいあります。 空白行削除で多分半分近くまで上に詰められれば良いのですが、たくさんあるのでマクロで教えていただければと思います。ネットでころがってるデータ試してみたのですが(1部) ENDLESSに実行されて、出来てるのかどうかも確認はとれてません。ちなみに自分のシートに貼ってあるデータはA列からAS列まであり数字、文字混在です。また各ブロックの終わりは集計行となっており、空白セルがまじってます。宜しくお願いします。

  • 色つき行の一括削除は?

    色のついた行を一括削除する方法はありませんか? また列が複数にわたる場合の、空白を一括削除する方法も教えてください!

  • エクセルマクロ 空白行のみ削除しない

    http://okwave.jp/qa/q9232296.html で、質問した者です。 度々申し訳ございません。 サンプル画像のG列に空白セルがある場合(画像には、G列には空白行がありませんが)、 空白行は削除したくないのですが、どのようにしたらよろしいか、 ご教授頂けたらと思います。 宜しくお願い致します。

  • シートの統合、かつ空白行の削除

    EXCELでデータの集計をしています。 複数のシートをひとつのシートに統合するまではマクロを用いて何とかなったのですが、元々のシートに空のセル(数式だけが入力されているセル)があり、それもひとつのシートへと統合されてしまっていて、統合されたシートに空の行が何列もできてしまっています。 統合すると同時に、こういった空白セル(のように見えるが実は数式が入ったセル)を削除して詰める方法をご存知ならば、ぜひお教え願います。 よろしくお願いいたします。

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

    2500行位使用しているシートのなかに、どのセルも空白になっている不要な行が300行くらい混ざっています。 この行を自動的に削除するにはどうすれば良いでしょうか。 ただ、その行のA~Eセルは空白でもFセルに値が入っているなど完全に空白でない行は削除できません。 メニュー、関数、VBAなど有れば教えてください。

専門家に質問してみよう