• ベストアンサー

2行にわたるデータを1行にしたい

こんにちは。小川と申します。どなたか知恵を貸してください。 表の中のレコードデータが2行にわたるものを1行にしたいのです。 1レコードが1行目2行目にありますが、E2をE1とF1の間に、F2をF1とG1の間に入れて2行目を削除したい。 エクセルやアクセスなど手段はどれでもいいのですが、件数が5000件以上あるファイルが多数あり、とても手作業で出来ません。 どなたか知恵を貸してください。 よろしくお願いします。

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

Excelで一連の動作の1回分をマクロで記録して、それを元に表全体を処理するように書き加えてみました。 どうせVBAでやるならもう少しスマートなやり方がありそうですが、とりあえずこの方法はいかがでしょうか。標準モジュールにコピーし、ツール>マクロ>マクロから実行してみてください。 Sub 行結合() Dim CurrentRow As Integer CurrentRow = 1 Columns("F:F").Select Selection.Insert Shift:=xlToRight Columns("H:H").Select Selection.Insert Shift:=xlToRight While (Cells(CurrentRow + 1, 5) <> "") Range("E" & (CurrentRow + 1)).Select Selection.Cut Range("F" & CurrentRow).Select ActiveSheet.Paste Range("G" & (CurrentRow + 1)).Select Selection.Cut Range("H" & CurrentRow).Select ActiveSheet.Paste Rows(CurrentRow + 1).Select Selection.Delete Shift:=xlUp CurrentRow = CurrentRow + 1 Wend End Sub

ohyuki
質問者

お礼

ご連絡ありがとうございます。 マクロを使った方法はとても簡単でワンクリックで出来るので非常に便利でした。 でも、E2のセルに何も無いときに止まってしまいます。 最初に何行目まで処理するかを入力して何も入っていなくても その行まで処理をする感じでしたらOKでした。 でもとても便利です。参考にします。 ありがとうございました。

その他の回答 (2)

回答No.3

こんばんは。 早速ですが、手順を列記します。 1.E列とF列の間に列を追加   (これで、F列だった列がG列になります、)   (F2をF1とG1の間に入れて、がG2をG1とH1の間にいれて、となります。) 2.G列とH列の間に列を追加   (これで、H列だった列がI列になります、) 3.これで、F列とH列が空白列になります。   (ここまで、ついて来れますか?) 4.ここで(^。^)y-.。o○ 5.F1に「=E2」、H1に「=G2」と入れる。 6.F1を一番下までコピー 7.H1を一番下までコピー   (これで、E2をE1とF1の間に、F2をF1とG1の間に入れて、の形になりました。)   (ここまで、ついて来れますか?) 8.ここで(^。^)y-.。o○ ここから、いらない2行目を削除する方法です。 9.一番右の使っていない列を利用します。   (仮にX列とします。) 10.X1に「=MOD(ROW(),2)」と入れる。 11.X1を一番下までコピー    (X列には、1,0,1,0、と繰り返します。) 12.X1をクリックして、データ→フィルタ→オートフィルタを指定します。 13.X1に表示された三角矢印をクリックして、1を選択。    (これで、1,3,5,7、と必要な行のみ表示されます) 14.A1からX列の一番下までを選択して、コピーする。    (全部が選択されたデータをコピーした形になる。) 15.別の新しいシートのA1をクリックして、    形式を選択して貼り付け→値 16.これで完成。新しいシートを名前を付けて保存。 17.ここで、(^。^)y-.。o○ 質問があればお気軽に♪ ではでは!

ohyuki
質問者

お礼

ご連絡ありがとうございます。 なるほどあとから邪魔な行をソートして消せばいいんですね。 使わせて頂きます。 ありがとうございました。

  • tgn1013
  • ベストアンサー率33% (386/1137)
回答No.1

1)Excelでテキストファイル(CSVファイル)に書き出す 2)テキストエディタでマクロを記録  End , Del Home ↓ 3)マクロを繰り返し これでできたファイルを、CSVとして保存しExcelで読み込み。 同様のことはExcel上でもできますがテキストエディタの方が簡単かと。

関連するQ&A

  • データの絞り込みってどのように処理されていますか?

    AccessVBAで作業しています。 テーブル1の中に、A・B・C・D・E・Fという数値型のフィールドがあり、レコード数は6万件とします。 A=100 B=50 のA~Fのレコードをまず取り出し、  レコード件数が1件ならF列の値を表示、  レコード件数が複数ならC列の最大値を含むレコードを選択。   それでレコード件数が1件ならF列の値を表示。   それでもレコード件数が複数ならDの最大値を含むレコードを選択。    それで件数が1件ならF列の値を・・・    それでも複数件ならE列の最大値を・・・ と続きます。 そのたびに元のテーブル1から選択してくるのは効率が悪い気がします。 みなさんはどのように処理されるのでしょうか。 また、レコードセットを使用したSQLの書き方がわからず困っています。 どなたか教えていただけませんか? 何卒よろしくお願いいたします。

  • Exelの表を以下のように全行組み替えたいと思いますが、手作業では大変

    Exelの表を以下のように全行組み替えたいと思いますが、手作業では大変です。 そこでマクロを作って作業をさせたいのですが、どのように記述すればよいでしょうか? (現状の表組)※左の数値がレコード数です。 1|A| |C| | |B| |D| | 2|E| |G| | |F| |H| | (このように整形したい表) 1|A|B|C|D| 2|E|F|G|H| このレコードが何百と下に並んでいる状態です。

  • エクセルで1行にまとめられたCSVデータを複数行

    エクセルを使ってCSVファイルのデータを参照して複数行にまたがる表に反映させたいのですがうまくいきません。   A B C D E  1 あ い う え お 2 か き く け こ 上記のように1行で1件分のデータがCSVであります。 このデータを   A  B  C  D  E 1 あ う お 2 い え  3 か く こ 4 き け 上記のように参照させたいのです。 数件ならば1件1件を参照させれば表は完成するのですが、数千件あるのでできません。 1パターン作って、あとは連続フィルで出来れば助かります。 説明が難しく、わかりづらいかと思いますがお力をお貸しください。 よろしくお願いいたします。

  • Excelでのデータ抽出方法

    お世話になります。Excelで下記のような同じ得意先が複数存在するリストから 得意先が重複しないようにリスト化(得意先1つにつき1行)することは可能でしょうか? レコード数が2万件近くあり、手作業では大変で困っております。 また、Excelで無理であればAccessに取り込んで作業をすることも可能です。 (最終的にはエクセルファイルとして出力希望です) 何かよい方法をご存知の方がいらっしゃいましたらご指導願います。 よろしくお願いいたします。 【抽出前】 項目  得意先名 01    A 02    B 03    B 04    B 05    C 06    C 07    D 08    E 09    E 10    F 【抽出後】 項目  得意先名 01    A 02    B 03    C 04    D 05    E 06    F

  • 1000行程あるデータを、10行単位する方法を教えてください。

    いつも御世話になっております。 最近VBAを始めました。以下の方法が分からず、煮詰まっております。 A列に1000行程データが入力されています。 これを、別シートにて10行単位に区切って、 A列 10行,B列 10行,C列 10行・・・・・・・ としたいのですが、 どうしたらよいでしょうか? 以前は、コピぺを手動で行っていたようなのですが、 このような作業が、特定の週に5回程発生するので VBAで行えたらと思っております。 ちなみに、データの件数は毎月500件~1000件の間を変動します。 よろしくお願いします。

  • Access のフォームで新しい行を挿入する方法

    アクセスの表形式でフォームを作成した時、データの先頭を右クリックすると ボックスが表示され、切り取り、コピー、貼り付け と表示されますが、ここに 挿入 がありません。  そこで、ここでダブルクリックをする事により、行挿入を行おうと思いました。 実際やってみるとテーブルの中には新しいレコードが挿入されているのですが、フォームを再表示(Repaintメゾッドを使用)しても、作成されたレコードが表示されません。 この時、レコード件数も増えているのに、以前のままの表示です。追加した後の枝No.は変更されて表示されています。  レコードには、キー項目と枝No.があります。  最初、レコード件数は2件とします。 1件目と2件目の間に新しいレコードを挿入したいので、2件目をダブルクリックして、新しく枝No.「2」のレコードを作成し、元の枝No.「2」のレコードは「3」に変更している事はテーブルを開けてみて確認しています。  この時、フォームでも枝No.は Repaint 実行後、変更されて表示されています。  どのようにすれば、新しいレコードが表示する事が出来るでしょうか。 実際には、この表形式はサブフォームにしており、メインフォームから、この挿入イベントを実行したいのです。 メインフォームでイベントを実行後、新たにサブフォームだけ開けてみると、ちゃんと新しいレコードが表示され、レコード件数も3件になっています。  よろしくお願いいたします。

  • 【エクセル】2行に一行のように、規則的に行を新規挿入したい

    お世話になります。 ぎっちり作ってしまったエクセルの表に対して、 2行に1行、空白行を挿入したいと思います。 この場合の作業について、考えてみたものの、 なかなかうまくできません。 お手数ですが、お知恵を拝借させていただければ、 幸いです。よろしくお願い致します

  • 【マクロ等】4行ごとに行を消したいのですが…

    いつもお世話になっております。 最近Excelで作業をすることが多いのですが相手の会社より頂いたデーターがテンプレートの違い上読み込むと4行ごとにデータが表示されます。 (参考図) ■A B C D E F (1)100 (2) (3) (4) (5)200 (6) (7) (8) (9) (10)1000 … と言った感じで4行の空欄が入ってしまいます。 いつもこの4行を行の削除でマウスを右クリックして削除しているのですがデーター行が2000とかを超えると血の気が引きます。。。 どうにか一括で間4行を削除することはできないでしょうか? 必ずデータはA1からはじまり4行ごとに間が空きA5,A10…と数値が入る形です。 よろしくお願いします。

  • MSDEでデータを抽出する時の処理時間

    Accessのデータベースから、ADOを用いてExcelにデータを抽出する作業をさせているのですが、データベースのレコード件数が多すぎて(現在40万件くらいで、日々2000件くらい増加)、時間がかかって困っています。 ある本に、「MSDEはAccess(Jet)に比べると、より大規模なデータを高速に扱うことが可能になっています。」と書いてあるのですが、これはSQLでの抽出時間が早くなるということで良いのでしょうか? 初心者で、プログラムや専門用語等に詳しくありませんので、できれば簡単な表現で教えていただけたら幸いです。よろしくおねがいします。

  • エクセルで、貼り付けすると、行が複数になります

    余り使いこなしていない、女性です。 XP ワード2003です 集計するのにある表をいつもエクセルに貼り付けする作業をしています。 貼り付けすると、50件の行ですが100件になります。 つまり1番が2行に渡っています (一行目と二行目に渡って1行の情報が貼りつけになります) 何度もこの集計をしていますが初めての事で困りました どなたか教えて下さい

専門家に質問してみよう