• ベストアンサー

セル内改行位置でセルを分割する方法

はじめまして よろしくお願いします。 エクセルで、ひとつのセル内に複数行に分けて入力してあるものを 行でそれぞれひとつのセルに分け直したい場合、 例えばA1のセルに  1234  aabbcc A2のセルに  12345  aaabbbccc  123 と入力してあるものを A1→1234 A2→aabbcc A3→12345 A4→aaabbbccc A5→123 としたいとき、何かいい方法ありますか。

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

  • ベストアンサー
  • yamada_28
  • ベストアンサー率43% (21/48)
回答No.1

1.A1のセルとA2のセルを選択してコピー 2.メモ帳などのエディタへ貼り付け 3."(ダブルコーテーション)がくっついているはずなので、置換えなどで"を削除する 4.編集したものを全部選択してコピー 5.エクセルへ貼り付け これでOK。ちょっと手間ですけど...

bmc11280219
質問者

お礼

できました!どうもありがとうございました。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 本来、横に区切るのでしたら、メニューのデータ-区切り位置 のダイアログを使います。 (良く使うようでしたら、ユーザー設定から、区切り位置ボタンをツールメニューに貼り付けておくと便利です。)その他のところの区切り文字に、「Ctrl + J 」で区切りをさせて、横に出しますが、縦の場合は、まあ、一般的は、VBAで行うのが一番かもしれませんね。すでに、VBAの回答も出ているようですが、まあ、ものは試しに! '<個人用マクロブックの標準モジュールに登録し-ユーザー設定のツールボタンに取り付けたるすると便利かも。簡易型でも一通りのエラー処理はしています。切り分けないときは、ただの値コピーになります。> Sub SplitCharTen() Dim c As Range Dim i As Long Dim ar() As Variant Dim buf As Variant Dim a As Variant Dim rng As Range If TypeName(Selection) <> "Range" Then _   MsgBox "最初に、切り分ける範囲をワークシート上で指定してください。", vbInformation: Exit Sub If WorksheetFunction.CountA(Selection) = 0 Then _   MsgBox "データのある場所を指定してください。", vbInformation: Exit Sub On Error Resume Next  Set rng = Application.InputBox("貼り付ける場所を指定してください。", , "$A$1", Type:=8) On Error GoTo 0  If rng Is Nothing Then Exit Sub   For Each c In Selection  If InStr(c.Value, vbLf) > 0 Then   buf = Split(c.Value, vbLf)   For Each a In buf   ReDim Preserve ar(i)   ar(i) = a   i = i + 1   Next a   Erase buf  Else   ReDim Preserve ar(i)   ar(i) = c.Value   i = i + 1  End If Next c  rng.Cells(1).Resize(UBound(ar()) - LBound(ar()) + 1).Value = _  WorksheetFunction.Transpose(ar()) End Sub

bmc11280219
質問者

お礼

どうもありがとうございました。今度やってみます。

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

VBあですが、標準モジュールに Sub test01() d = Range("A65536").End(xlUp).Row K = 2 For i = 2 To d s = Split(Cells(i, "A"), Chr(10)) For j = 0 To UBound(s) Cells(K, "B") = s(j) K = K + 1 Next j Next End Sub を貼り付けて、実行してください。 例データ A列  結果B列 "12 22345" 12 "23 sdfg" 22345 "wer 12er 3457" 23 12er sdfg wer 12er 3457 12er A列A1,A2、・・・のデータをA1,A2、・・も含めて、A列に戻すのは、複雑になるので(配列などに、一旦覚えさせなければならない)分解したものを、B列にセットしてます。 関数では、2行、3行、4行などが混じると複雑になって、手に負えない。

bmc11280219
質問者

お礼

どうもありがとうございました。ちょっと私には難しそうですが時間のある時挑戦してみたいと思います。

関連するQ&A

  • Excelでセル内改行

    お世話になります。 早速ですがExcelで複数のセルに文字列が入力されている時、それらの文字を結合する場合はCONCATENATE関数を使いますよね? で、この応用(なのか判りませんが)で例えばセルA1に"改"の文字が、セルB1には"行"の文字が入っているとき、セルC1に 改 行 と改行させて2行で表示したいのですが、セルC1に"=CONCATENATE(A1,CHAR(13),B1)"とやってもうまくいきませんでした。 Alt+Enterで手入力する以外に関数、マクロ等で何かいい方法がありますか? よろしくお願いします。

  • 複数列のセル内改行位置でセルを分割する方法

    エクセルVBAで下記のように複数列にセル内改行があった時に 1改行を1行として分割をしたい場合、 【A列】 a1作業日(項目名) a2(改行あり) 2013/4/1 2013/4/3 a3(改行なし) 2013/4/1 a4(改行あり) 2013/4/1 2013/4/2 【B列】 b1終了日(項目名) b2(改行あり) 2013/4/2 2013/4/10 b3(改行なし) 2013/4/2 b4(改行あり) 2013/4/15 2013/4/20          ↓    A 列 B列    作業日 終了日 1行目 2013/4/1 2013/4/2 2行目 2013/4/3 2013/4/10 3行目 2013/4/1 2013/4/2 4行目 2013/4/11 2013/4/15 5行目 2013/4/16 2013/4/20 としたいとき、何か良い方法はありますでしょうか? よろしくお願いいたします。

  • EXCEL:セル内での改行について

    エクセルで、セルの書式設定を「折り返して全体を表示する」にしていると セルの中で改行したとき自動的に行の幅が広がると思うのですが、 複数セルを結合している場合、これが利かなくなってしまいます。 つまり、結合セルの中に何行入力しても、もとの行幅サイズから 変わらないので、自分で行幅を広げて調節しなければいけなくて 非常に不便なのですが、解消する方法は無いでしょうか? ちなみに、通常は行番号の下の線をダブルクリックすると 入力されている行数にあわせて行幅を自動調整してくれると思うのですが これも利きません。 よろしくお願い致します。

  • エクセルでセルの位置を求める

    エクセルの表から複数の条件に合ったセルの位置を求めたいのですが・・・ たとえば ・|A|B| 1|3|1| 2|3|2| 3|5|1| 4|5|2|<--この行(4)を求める 5|6|1|・・・・ ・・・・・ の様な表の場合A列が5でB列が2の行(この場合4)を求めたいのですが よろしくお願いいたします。

  • Excel 特定のセルだけEnterでセル内改行

    タイトル通りのことなのですが、VBA等を駆使してできないか悩んでいます Excelのセル内改行は通常Alt+Enterなのですが、 使っているシートの一つのセルだけ複数行入れるような大きな所があります。 他のセルでは問題ないのですがここの入力時では、 いつもAltを押しながらでないと改行できない煩わしさが募りまして、 「このセル内に限り」Enterキーだけで改行できるようにしたいのです。 条件としてはあくまでこのセルのみで、形を崩さずにできることが望ましいです。 この入力セルは他シートから参照されているため 複数行のセルに分割したり、テキストボックスに置き換えることは難しいです 色々探した挙句、Application.MoveAfterReturn など VBAを駆使して考えてみたのですが 手詰まりになってしまいました。 何かできる方法はありますでしょうか?

  • エクセルの一つのセルに複数行の文字を入れる方法

    エクセルの一つのセルに複数行の文字を入れる方法を教えてください。 メモ帳などで入力したこのような文章をエクセルに挿入したいのです。 1.あいうえお   あいうえお   あいうえお そのままコピーしてエクセルに貼り付けたら 一つのセルには入らず3行分にまたがってはいりました。 セルの結合をするのかしら?と思って結合したら1行目の「1.あいうえお」が真ん中に残って 2,3行目の文字が消えてしまいました。 このような文章をこのままの状態で一つの列の一つの行(A列1行目など)に入れるには どのようにすればできるのでしょうか?

  • Excel 2016 で一つのセル内で改行したい

    Excel で一つのセル内で改行する方法をお願いいたします 列と行を広くして一つのセル内に複数行記入したいのです 書式設定では 折り返して全体を表示する         縮小して全体を表示する        セルを結合するが有りますが        セル内での改行が有りません 前の文字をスペースで送ると改行らしき事は出来るのですが文字の並びがズレて来るのでよろしくお願いいたします

  • エクセル セル内の改行

    一つのセルの中で入力値が長くなり(110、120、130などのように)改行したいのですがどのようにしたら良いでしょうか? またセルを複写?(A4は数値を入力、B4は=A4で入力)しているとき、A4はそのまま1行で入力、B4は改行して2行で入力という風にできますか? よろしくお願いします。

  • EXCELのセル内複数行セルの置換方法

    EXCELの1つセル内に複数行入力してあります。 この内の複数行を一括変換する方法が知りたいです。 例) A1セルに 名前:マイケルジャクソン 住所:福岡県 性別:女 部活:パソコン部 年齢:17歳 とあった場合、 名前:マイケルジャクソン 住所:福岡県 を空白で置換して、 性別:女 部活:パソコン部 年齢:17歳 だけにしたい時、一括で置換することはできますでしょうか? 同様な形態で、A2、A3と数百行あります。 よろしくお願いいたします。

  • セルのグループ化

        A    B   C 1   日付  参加者 グループ 2   5月25日  A ☆ 3        B △ 4 5月26日 C □ 5 5月27日 D △ 6 E ☆ という表があったとします。 オートフィルタでA列を”5月25日”で引っ掛けた場合 行2はもちろんのこと、行3も一緒に出てくるようにしたいです。 また同様にB列を”B”で引っ掛けた場合 行3はもちろんのこと、行2も一緒に出てくるようにしたいです。 ~やりたいこと~ ・複数の図をグループ化するように、  複数のセルをグループ化したいです。 何か良い方法はありますでしょうか? ※A3のセルに”5月25日”と入力する以外 Excel 2003を使用しています。 他に不足情報がございましたら、ご指摘下さい。 宜しくお願いします。

専門家に質問してみよう