プロが教える店舗&オフィスのセキュリティ対策術

かなりの行があるテキストファイルをEXCELに読み込みます。
3行が1組になっているので、別のBというシートにその3行を連結した結果を書き出します。
(3行といっても1行には1セルしかありませんが・・・)
次に4行目~6行目が1組になっているので、上記と同様にBシートの2行目に連結した結果を書き出します。
これは、手で1行づつBシートに
=A1&A2&A3 、次の行に =A4&A5&A6

等と式を記載すれば希望のものが出来るのですが、場合によっては元の行が30,000行ほどあったりするので、それを全て手で入力していくには、根気と時間が必要になります。
この作業は、毎日発生する予定で、他の仕事もやらなくてはならないため、短時間にこれを実現できれば・・・と、思っていますが、何をどうすれば良いのかわからずにいます。

これを解決できる方法がありましたら、是非教えて頂けると助かります。
ちなみにEXCEL XP(OfficeXPに付属)のものです。
例えば、EXCELではなく、***というフリーのソフトならできます!というのも歓迎です。
すみませんが、宜しくお願いします。

A 回答 (13件中11~13件)

もうひとつの方法



1)読み込んだシートを仮に[Sheet1]とします。
2)セルB1に値[1]を入力、セルB2に値[2]を入力。
3)セルB1:セルB2を選択し、選択領域右下の■をダブルクリック(これで全行に行番号が振られます)
4)セルC1に式[=A1&A2&A3]を入力。
5)セルC1:セルC3を選択し、選択領域右下の■をダブルクリック(これで3行単位に式がコピーされます)
3行単位で、1行目にデータ、2行目・3行目が空白が繰り返しになります。


6)列B:列Cを選択してコピー。
7)どこか別シートで、形式を選択して貼り付け-値
8)列B(元の列Cである3行連結部分)から列A(元の列Aである連番)を選択。
9)メニューorリボンのデータ>並べ替えを実行(キーは列B)
これで列Bの値がある行がひとかたまりになります。

10)列Aで、列Bに値がない部分の「行全体」を削除。
11)メニューorリボンのデータ>並べ替えを実行(キーは列A)
これで3行連結部のみが残ります。
    • good
    • 0
この回答へのお礼

早速、お教え頂き、ありがとうございます。
自宅のPCで試したところ、希望通りのものが出来上がりました。
休み明けにでも会社のPCで同様に試してみます!
本当にありがとうございました!!

お礼日時:2011/03/19 11:52

参考ページはたくさんありますが



すぐ役立つ エクセルVBAマクロ集
http://www.asahi-net.or.jp/~zn3y-ngi/

こちらで使い方などを調べて(VBAマクロというのはオフィスに標準でパッケージされてるのですぐ使えます)

以下のページを参考にマクロを作ればいいのではないでしょうか?
Macro コピー
http://www.asahi-net.or.jp/~zn3y-ngi/YNxv20009.h …
異なるシート間で範囲指定してコピーして貼り付けるには?
http://www.asahi-net.or.jp/~zn3y-ngi/YNxv991.html

7.2 データがある最終行を知る方法
http://www.happy2-island.com/excelsmile/smile03/ …

文字列の結合
http://www.officepro.jp/excelvba/basic/index7.html

このあたりを参考にして

1:元シート(仮にAとして)の文字列を3行分結合する
2:Bシートに1の結果を書き込む
3:Aシートのデータ行が終わるまで、1~2の動作を繰り返す

こんな感じのものを作れば、ボタン一つで質問主様の意図する動作を行わせることができると思います。
    • good
    • 0
この回答へのお礼

早速お教え頂きありがとうございます!
今後も色々と使えそうなサイトをご紹介いただき、ありがとうございます。
これらを参考に、試してみます。
本当にありがとうございました!

お礼日時:2011/03/19 11:55

1)テキストを読み込んだシートを仮に[Sheet1]とします。

適宜読み替えてください。
2)シートを追加します。このシートを仮に[Sheet2]とします。
3)sheet2のセルa1に、以下をコピペしてください。
式[=indirect("Sheet1!A"&(row()-1)*3+1)&indirect("Sheet1!A"&(row()-1)*3+2)&indirect("Sheet1!A"&(row()-1)*3+3)]
4)シート2のセルA1の右下(セルA2左下・セルB1の右上・セルB2の左上)に■があるので、マウスで下方向に必要なだけドラッグ。

これでSheet1の列Aが3行単位で連結されてSheet2のセルA1以降に表示されます。

以下必要に応じて。
5)Sheet2の列Aをコピー
6)どこかに、「形式を選択して貼り付け」-「値」で式の結果が値として保存されます。
    • good
    • 0
この回答へのお礼

早速教えて頂き、ありがとうございます。
自宅のEXCELはVerが異なるのですが、それでも問題なく希望通りのものができました。
休み明けに会社のPCで試してみます。
本当にありがとうございました!!

お礼日時:2011/03/19 21:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!