• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:1つのセル内にある長文を分割、カタマリ別にセル入力)

Excelで1つのセル内にある長文をあるカタマリ毎に自動分割し、各カタマリごとにつき1つのセルに入力する方法を教えてください。

このQ&Aのポイント
  • Excelで1つのセル内にある長文をカタマリごとに自動分割し、各カタマリごとに別のセルに入力する方法をご教示ください。
  • セル内の長文をカタマリごとに分割し、別々のセルに入力する方法をExcelでご教示ください。
  • Excelで1つのセル内にある長文をカタマリごとに分割し、個別のセルに入力する方法を教えてください。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! VBAになってしまいますが・・・ 一例です。 文章はA1セルに入っているとして、B1セル以降に表示させるとします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, k, M, N As Long Dim str As String Dim myArray As Variant myArray = Split(Cells(1, 1), "。") For k = 0 To UBound(myArray) Cells(k + 1, 2) = myArray(k) & "。" Next k For i = Cells(Rows.Count, 2).End(xlUp).Row To 1 Step -1 If Cells(i, 2) = "。" Then Cells(i, 2).ClearContents ElseIf Len(Cells(i, 2)) > 80 Then str = Cells(i, 2) N = WorksheetFunction.RoundDown(Len(str) / 80, 0) Rows(i + 1 & ":" & i + N).Insert For M = 0 To N Cells(i + M, 2) = Mid(str, M * 80 + 1, 80) Next M End If Next i End Sub 'この行まで 参考になりますかね?m(_ _)m

abillionaire
質問者

お礼

求めているそのものです!ありがとうございます! A3から入力、B3から出力したい場合はどこをいじればいいんえしょうかね?

その他の回答 (4)

回答No.5

ご質問のような文字列の加工は、left(find)で計算する、まさに典型的な例です。つまり、下の【方法1】が最も素直な方法と思われます。 ご質問の長文がA1に入力されているとします。 【方法1】 (1)B1に「=left(a1,find("。",a1))」と入力 (2)A2に「=substitute(a1,b1,"")」と入力 (3)B1をコピーしB2に貼り付け(ドラッグ・アンド・ドロップやオートフィルでも可) (4)A2:B2の範囲を選択 (5)B2の右下隅の角を下向きにドラッグすることで、適当な行数、オートフィル (6)B列に「#VALUE!」というエラーが出るまでドラッグ。ご質問の文では7行目で出現するので、B1:B6の範囲に、求めるデータができあがっています。 【方法2】 (1)A1にカーソルを置いた状態でリボン(古いバージョンではメニューバー)の「データ」の「区切り位置」をクリック (2)表示されるウィザードで「カンマやタブなどの…」を選択し、「次へ」ボタンをクリック (3)「区切り文字」として「その他」をチェックし、その右のボックスに「。」を入力の上、「完了」ボタンを押す (4)A1:F1の範囲にデータが分割されているので、この範囲を選択してコピー (5)「形式を選択して貼り付け」をA4に貼り付けるが、その際、「行列を入れ替える」をチェック (6)A12に「。」を入力 (7)B4に「=a4&$A$12」と入力 (8)B5以下の行をオートフィル。これでB4:B9の範囲に、求めるデータができあがっています。 なお、「区切り位置」ウィザードで「カンマやタブなどの…」の代わりに「スペースによって…」のほうを選ぶと、区切る位置を自由に指定し、更にドラッグで動かしたりすることができます。元のデータの内容によっては、こちらのほうが便利なこともあります。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

マクロや関数など複雑な手順の方がカッコ良ければ、既出回答がお勧めです。 最初の手順) Ctrl+Hで置換のダイアログを出し、 。 を 。Ctrl+J ここでCtrl+Jは「。」の記入に続けてコントロールキーを押しながらJのキーを押す。見た目上は何も入力されているようには見えません にすべて置換し、「。」でセル内改行させます 続けてそのセルをコピーし、「ワードに」貼り付ける ワードからコピーし、エクセルに張り戻す と、「。」でセルを分けて記入できます。 次の手順) データを記入できたセルのフォントを「MS明朝」に変更する 列幅を80文字幅にする 80文字を超えているセンテンス(のセル)では、列幅を超えて(折り返して全体を表示の設定がついていればセル内で複数行に折り返して)表示されている それらのセルの下に、必要数の空セルを挿入する 80文字超えのセルで ご利用のエクセルのバージョンが不明ですが、 Excel2010ではホームタブの「フィル」から文字の割り付けを行う Excel2007ではホームタブの「フィル」から「両端揃え」を行う Excel2003以前では編集メニューのフィルの文字の割付を行う

noname#204879
noname#204879
回答No.2

添付図参照 A3: =LEN(B1)-LEN(SUBSTITUTE(B1,"。","")) A5: =FIND("。",B$1,A4+1) B5: =IF(ISERROR(A5),"",MID(B$1,A4+1,A5-A4))

  • yugere
  • ベストアンサー率37% (48/127)
回答No.1

セルの内容をテキストファイルに書き出し、エクセルから区切り文字「。」でインポート。 80文字で区切りが必要なセンテンスは、カット&ペーストで対応するのが早そうな気がします。

関連するQ&A

専門家に質問してみよう