Excelで1つのセル内にある長文をあるカタマリ毎に自動分割し、
各カタマリごとにつき1つのセルに入力する方法を教えてください。
1つのカタマリは ”。” でセンテンスとして区切るか、
センテンスが80文字以上の場合は80文字で区切ります。
たとえば
ひとつのセル内に以下のような文章がある場合、
”ウィグル人の居住区とイスラムの文化遺産を破壊しつつ辺境「開発」。景気刺激策のばらまきで少数民族の習俗をついでに破滅させる一石二鳥。アルタイ山脈はモンゴル、露西亜、カザフスタン、中国を東西に貫く。その頂点とみられる、ベルーハ山は標高4506メートル、カザフと露西亜の国境を分ける。中国側の「アルタイ市」は、地理的にウルムチの北方およそ600キロ、「阿弥泰」の漢語を当てるが、原住民はもともと漢族ではない。ちょうどアルタイ市の位置は中国、モンゴル、露西亜、カザフ国境であり、北のロシア側はアルタイ共和国。”
整形後は
"ウィグル人の居住区とイスラムの文化遺産を破壊しつつ辺境「開発」。"
"景気刺激策のばらまきで少数民族の習俗をついでに破滅させる一石二鳥。"
"アルタイ山脈はモンゴル、露西亜、カザフスタン、中国を東西に貫く。"
"その頂点とみられる、ベルーハ山は標高4506メートル、カザフと露西亜の国境を分ける。"
"中国側の「アルタイ市」は、地理的にウルムチの北方およそ600キロ、「阿弥泰」の漢語を当てるが、原住民はもともと漢族ではない。"
"ちょうどアルタイ市の位置は中国、モンゴル、露西亜、カザフ国境であり、北のロシア側はアルタイ共和国。"
のようにカタマリごとにセルに入力したいです。
セル内の整形は出来るのですが、分割したカタマリをセル毎に入力する方法がわかりません。
ご教示いただければ大変助かります。
No.1
- 回答日時:
セルの内容をテキストファイルに書き出し、エクセルから区切り文字「。
」でインポート。80文字で区切りが必要なセンテンスは、カット&ペーストで対応するのが早そうな気がします。
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))
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
No.4
- 回答日時:
マクロや関数など複雑な手順の方がカッコ良ければ、既出回答がお勧めです。
最初の手順)
Ctrl+Hで置換のダイアログを出し、
。
を
。Ctrl+J
ここでCtrl+Jは「。」の記入に続けてコントロールキーを押しながらJのキーを押す。見た目上は何も入力されているようには見えません
にすべて置換し、「。」でセル内改行させます
続けてそのセルをコピーし、「ワードに」貼り付ける
ワードからコピーし、エクセルに張り戻す
と、「。」でセルを分けて記入できます。
次の手順)
データを記入できたセルのフォントを「MS明朝」に変更する
列幅を80文字幅にする
80文字を超えているセンテンス(のセル)では、列幅を超えて(折り返して全体を表示の設定がついていればセル内で複数行に折り返して)表示されている
それらのセルの下に、必要数の空セルを挿入する
80文字超えのセルで
ご利用のエクセルのバージョンが不明ですが、
Excel2010ではホームタブの「フィル」から文字の割り付けを行う
Excel2007ではホームタブの「フィル」から「両端揃え」を行う
Excel2003以前では編集メニューのフィルの文字の割付を行う
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の範囲に、求めるデータができあがっています。
なお、「区切り位置」ウィザードで「カンマやタブなどの…」の代わりに「スペースによって…」のほうを選ぶと、区切る位置を自由に指定し、更にドラッグで動かしたりすることができます。元のデータの内容によっては、こちらのほうが便利なこともあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】住所に郵便番号を付記する方法 3 2022/05/07 17:15
- 世界情勢 新型武漢のコロナは、中華人民共和国とロシアが世界の覇権を握る為に意図的に仕掛けたものですか? 202 1 2023/01/14 00:52
- 政治 ウクライナ紛争への介入やめませんか? 8 2022/11/25 18:56
- 政治 日露戦争で、日本がロシアと戦っている時、中国も朝鮮韓国も、指を加えて見てるだけで何もしませんでした 3 2022/06/17 14:08
- 政治 中国は一票の格差4倍で、日本は3倍ですが、それでも日本は民主主義国なら中国も同じですよね? 2 2023/03/16 04:52
- 政治 日本人は絶滅危惧種ではないですか? 3 2022/09/11 06:06
- 世界情勢 ウクライナ紛争後の日本安保について ウクライナ情勢は今の西側諸国の軍事支援ですと、紛争を長期化させて 4 2023/03/12 02:51
- 伝統文化・伝統行事 韓国語の翻訳をお願い申し上げます 1 2022/07/08 09:33
- 政治 中国がウィグルで、こんな事をしているようでは、日中友好など有り得ませんね? 4 2022/06/27 05:53
- 政治 この際、日本も北欧2カ国に便乗して、NATOに加盟したらどうですか? 9 2022/04/26 11:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
MicrosoftOfficeの1ユーザー2...
-
MicrosoftOffice2019なんですが、
-
Microsoft 365のディフェンダー...
-
英数字のみ全角から半角に変換
-
Excel 日付を比較したら、同じ...
-
Microsoft Officeを2台目のPCに...
-
Microsoft365の「お支払いを更...
-
会社PCのメールが更新されない
-
エクセル関数について
-
エクセルのシフト表を簡単にGoo...
-
ウィンドウィズ メモ帳で日付だ...
-
会社のTeamsのことで相談です。...
-
バソコンが二台とも壊れ後換装...
-
Microsoft Formsの「個人情報や...
-
複数の写真を1枚に印刷
-
Formsにて、匿名にて回答する方...
-
パソコン画面の中の小さい画面...
-
マイクロソフト 一時使用コード...
-
MicrosoftOfficeについて質問で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
【スプレッドシート】指定の日...
-
英数字のみ全角から半角に変換
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
Office 2021 Professional Plus...
-
エクセルで例えば、関数を使っ...
-
Microsoft Formsの「個人情報や...
-
1つのPCに「Excel 2010」「Exc...
-
エクセルで例えば、A1に㈱ベ...
-
理由を教えてください。
-
エクセルでXLOOKUP関数...
-
マイクロソフト オフィスについて
-
VLOOKUP関数について
-
teams設定教えて下さい。 ①ビデ...
-
Googleのスプレッドシートでシ...
-
【Excel VBA】PDFを作成して,...
-
Microsoft365で写真をアルバム...
-
Outlook で宛先が複数の場合の人数
-
Excel テーブル内の空白行の削除
おすすめ情報