shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Excel】セルの文字を複数行に展開する「文字の割付」と元に戻す方法

Excelで長文を一つのセルに入力するとき、「折り返して全体を表示」でセル内に文字を収めることができます。しかし、文字量に応じて行の高さが増え、同じ行の他の列にも影響するため、レイアウト調整が必要になることがあります。そのようなレイアウト上の制限があるときは、横幅に収まらない文字を下の複数行に展開する「文字の割付」を活用すると、行高を変えずに見やすく整理できて便利です。 また、利用場面は限定されますが、「文字の割付」は複数行の値を一つのセルに結合したいときにも活用できます。

内容:

動作確認のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2605)です。

「文字の割付」とは

「文字の割付」は、1つのセルに入力された文字列を、現在の列幅に合わせて複数のセルに分割して書き込む機能です。

見た目だけを折り返す「折り返して全体を表示」とは動作が異なります。

機能 動作 データへの影響
折り返して全体を表示 セルの表示だけ折り返す データは1セルのまま
文字の割付 文字を下のセルへ分割して書き込む 複数セルにデータが書き込まれる

印刷レイアウトを列幅に合わせて整えたいときに便利です。

B2セルの長い文字列が、B2からB5の複数セルに展開された状態
文字の割付前と割付後のセルの比較

文字を複数行に展開する手順

  1. 文字が入力されているセルを選択する(例:B2)
  2. リボンの「ホーム」タブを開く
  3. 「編集」グループにある「フィル」ボタンをクリックする
  4. メニューから「文字の割付」を選ぶ
  5. 確認ダイアログが表示されたら「OK」をクリックする

実行後、B2セルの文字列が列幅に合わせて下のセルへ自動的に分割されます。

使用上の注意

  • 割付先のセル(下のセル)にすでにデータがある場合は上書きされます。事前に空白かどうか確認してください。
  • 文字列(テキスト)のセルのみが対象です。数式・数値には使用できません。

展開した文字を元のセルに戻す方法

基本手順:「文字の割付」を再実行する

「文字の割付」は、複数行に展開した範囲を選択して再実行すると、選択範囲の幅で文字列を再調整します。列幅が十分広ければ、1行のセルに戻すことができます。

  1. 割付されたセルをすべて選択する(例:B2:B5)
  2. リボンの「ホーム」タブを開く
  3. 「編集」グループにある「フィル」ボタンをクリックする
  4. メニューから「文字の割付」を選ぶ
  5. 確認ダイアログが表示されたら「OK」をクリックする

「文字の割付」は、セルに入力された値よりも、列幅が広い場合には、その列幅になるように再調整することができます。 もし、列幅が、十分に広い場合は一つのセルに文字列がまとまります。

下図は、B列の幅に対して、各セルの文字列が少ないときに「文字の割付」を実行して再調整した事例です。

B2からB5の複数セルに展開された状態から、B列の幅で再調整
複数セルを選択した状態で「文字の割付」を実行して、1セルにまとまった状態

注意事項

  • 255文字を超える文字列では、「文字の割付」を実行すると文字が削除されるなど、期待する動作になりませんでした。私の環境で確認したものであり、長文を扱う際はご注意ください。
  • 列幅が狭い場合は1行に戻らず、その幅で再調整されます。1行に戻したい場合は、列幅を広げてから再実行が必要です。
  • 選択範囲が割付されたセルすべてを含んでいないと、文字列の一部が欠けることがあります。必ず割付されたセルをすべて選択してから実行してください。

補足手順:TEXTJOIN関数で確実に1行に戻す

列幅に関わらず確実に1つのセルにまとめたい場合は、TEXTJOIN関数を使います。

  1. 空いているセル(例:B1)に以下の数式を入力する
=TEXTJOIN("",TRUE,B2:B5)
  1. B1セルをコピーし、「値のみ貼り付け」で指定のセルに貼り付ける
  2. 結合後の不要なセルの内容を削除する

まとめ

  • 「文字の割付」は、列幅に合わせて文字列を下のセルへ分割して書き込む機能
  • 「折り返して全体を表示」と異なり、実際にセルのデータが変わる点に注意
  • 元に戻す際は割付されたセルをすべて選択して再実行する
  • 列幅に関わらず1行に戻したい場合はTEXTJOIN関数を使うと確実
  • 255文字を超える文字列では「文字の割付」を実行しても期待する動作をしません。