1セルの中に改行のあるデータがあります。このデータを改行毎に別セル分解して入力する方法はありますか?
サンプルは1行ですが、実際に作業したいデータは1000行ほどありますので手作業でなく一括で作業する方法をお願いします。
データには空白セルの場合もあります
また列行共に項目数が決まっていませんのでなるべく対応できる形が望ましいです。
よろしくお願いします。
ちょっと裏技的な簡単な方法見つけました。
1.エクセルの対象データ範囲をすべてコピーします。
2.MSワードを開きます。
3.形式を選択して貼り付けで「リッチテキスト形式(RTF)」を選択
4.貼り付けられた状態(この時点で貼り付けデータは選択状態)でコピーする
5.エクセルに戻って空きセルにペーストする
これで関数やマクロを使わずに改行をセル分割できます。
セルの中身を普通にコピーして張り付けるだけで対応できますよ
F2を押してセルの編集状態で開業を含む全文をコピーして、適当な位置にセルを移動、編集モードにせずにそのまま貼り付けです
例えば、
A1に、
test1
test2
test3
A2に、
test1-2
test2-2
test3-2
A列にデータが並んでいるとします。
この場合、
A列を選択してコピーします。
複数ある場合は、同時に選択します。
次に、Windowsのスタート>プログラム>アクセサリ>メモ帳
を立ち上げ、貼り付け
次に、編集>置換
ここで、
「"」を「」空白で置換して、「"」を削除します。
そして、編集>全て選択>コピー
その後、何も書いてないExcelを立ち上げ、貼り付け
これで、改行されたExcelシートが作れるかと思います。
なお、元データ中に、「"」がある場合、この作業をする前に、何か別の、ユニークな記号や文字列に置き換え、その後、元に戻すと良いかと思います。
ちょっと裏技的な簡単な方法見つけました。
1.エクセルの対象データ範囲をすべてコピーします。
2.MSワードを開きます。
3.形式を選択して貼り付けで「リッチテキスト形式(RTF)」を選択
4.貼り付けられた状態(この時点で貼り付けデータは選択状態)でコピーする
5.エクセルに戻って空きセルにペーストする
これで関数やマクロを使わずに改行をセル分割できます。
まず改行位置を特定します。
例えばセルA1の改行位置はFind(char(10),a1,1)で求められます。
そうすると、改行位置の一つ手前までが1行目になりますから、
left(a1,Find(char(10),a1,1)-1)
で作れます。2行目以降は
right(a1,len(a1)-Find(char(10),a1,1))
に対して同じことをやればいいのです。
改行数も違うようなので、ifを使って
if(len(a1)=0,"",left(a1,Find(char(10),a1,1)-1)
if(len(a1)=0,"",right(a1,len(a1)-Find(char(10),a1,1)))
とでもすればいいでしょう。後は関数をコピペすればいいだけです。
セルをコピーして、EmEditor というソフトに貼り付け。
CTRL+A、CTRL+C で、EmEditor に貼り付けたデータをコピー
エクセルに貼り付け
コメント(3件)
回答は開かないで放置してください
とはいえ今回の場合は普通にマクロの記録と実行でいいと思いますが
回答に追記です
私の回答の作業を1000行分するようにマクロを組んで対応するといいと思います
セルの編集状態で全文をコピー→出力先に移動→編集モードにせずにそのまま貼り付け→次の行(というよりも隣のセル)に移動
のようなマクロになると思います。
本来ならVBAでマクロプログラムを組むところですが、操作の記録をすれば特にプログラミングができなくても大丈夫です
参考
http://allabout.co.jp/computer/msexcel/subject/msubsub_macro.htm
http://allabout.co.jp/gm/gc/3909/
-該当Excelのセル範囲をコピー
-Microsoft Word の新規文書に貼り付け
-できたWordの表のセルをコピー
-Excelの新しいシートに貼り付け