[[20150110235247]] 『セル内で改行した文字列のセルわけ』(コッター) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セル内で改行した文字列のセルわけ』(コッター)

セル内で改行した文字列 



を別々のセルに分割し縦に並べるどうしたらよいでしょうか?

< 使用 Excel:Excel2010、使用 OS:WindowsVista >


 2007の場合

 データ
 ↓
 区切り位置
 ↓
 「カンマや〜」をチェックし「次へ」
 ↓
 「区切り文字」→「その他」にチェックを入れ
 横のテキストボックスのところで
 Ctrl+J
 をキー入力
 ↓
 完了

 で横方向に分割されます。

 あとは、
 分割されたセルを選択しコピー
 ↓
 転記先のセルを選択し右クリック
 ↓
 形式を選択して貼り付け
 ↓
 「行列を入れ替える」にチェック
 ↓
 OK

 2010は手元にないので分かりませんが、操作は
 そんなに変わらないとおもいます。

 他には、マクロでの方法もあります。
 (カリーニン) 2015/01/11(日) 00:21

 VBAで行う場合のサンプルです。
 選択セル全体に対して処理を行います。

 Sub test()
  Dim r As Range
  Dim c As Range
  Dim mystr As String
  Dim sp As Variant
   If TypeName(Selection) <> "Range" Then Exit Sub
   Set r = Selection
   For Each c In r
    sp = Split(c.Value, vbLf)
    c.Resize(UBound(sp) + 1).Value = WorksheetFunction.Transpose(sp)
    Erase sp
   Next c
   Set r = Nothing
 End Sub
(カリーニン) 2015/01/11(日) 00:28

 他には関数で行う方法もあったと思います。
 関数に関しては識者のレスをお待ち下さい。
(カリーニン) 2015/01/11(日) 00:29

 A1セルに元の値がある場合。
 =CLEAN(MID(SUBSTITUTE(A$1,CHAR(10),REPT(CHAR(9),100)),(ROW(A1)-1)*100+1,100))
 と入力して下へコピーでどうだろうか?

 もし、文字列内にスペースがない場合は
 =TRIM(MID(SUBSTITUTE(A$1,CHAR(10),REPT(" ",100)),(ROW(A1)-1)*100+1,100))
 でも。

 「ROW(A1)」の部分は元の値のセルがA1以外の場合も変更せずにいてくれ。
(ねむねむ) 2015/01/11(日) 12:20

 手軽な分解方法。

 名前を付けて保存で「テキスト(スペース区切り)(*.prn)」にして保存。
 エクセルの「開く」から.prnファイルを開く。
 3行になっている。

 他にデータがあるとそっちも分解されるから、実質的にはこれを元ファイルにコピーペーストですかね?
(のざき) 2015/01/11(日) 16:00

 セルをコピーしてワードに貼り付けると改行して貼りり付きます。
 ワードを再度コピーしてエクセルに貼り付けなおすと縦に分割して貼りつきます。

 ただ、これだと数字でも左詰めで貼りつきます。
 ワードをコピー後一旦メモ帳に貼り付けて再度メモ帳をコピーしてエクセルに
 貼り付けるか、他のセル(書式設定をしていないセル)の書式をコピーする、と
 します。
(カリーニン) 2015/01/11(日) 20:49

 ワード上でコピー後、エクセルに貼り付けるときに
 「形式を選択して貼り付け」で「テキスト」を選択すると
 数字だったら右詰めで貼りつきました。
(カリーニン) 2015/01/11(日) 20:52

 ワードではなくワードパッドだと、ワードパッドからエクセルにコピペしても
 数字は自動的に右詰めになりました。
(カリーニン) 2015/01/11(日) 22:35

 1:セルを編集状態にして文字列全てをコピー。

 2:別セルで「形式を選択して貼り付け」⇒「テキスト」
 
(GobGob) 2015/01/12(月) 07:57

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.