Excelのセル内で改行するのはAlt+Enterですが、原則としてセル内改行を用いた文書を作成してはいけません。1つのセルの中で改行をすることはデータ処理の妨げになりますので、できるだけ改行を使わないように工夫しなければなりません。
しかし、データを加工するときに、改行を置換して別の文字にする(例えばBRタグ)とか、改行を削除するということはあります。また、1行のレコードから複数行のデータを作るのに関数で改行を入れることもあります。
そこで、今回はセル内改行の応用問題として、セル内の改行の挿入と置換、削除、Excel関数を用いた改行と置換について出題します。
目次
1.セル内改行について(復習)
セル内改行の基本的な使い方についてはこちらの記事をご覧ください。
2.改行コードの置換
(1)セル内改行を削除する
問題
6チームのトーナメントの表を作りました。B列には予選の順位とチーム名が入力されています。
B列のデータを用いて、別のシートに次のようなリストを作りなさい。
解説
B列をコピーして別のシートに貼り付けます。
セルの中で改行をしています。これをスラッシュに置換します。置換の画面を出します(参考:Excelの「置換」のルールと注意点を習得するための基本トレーニング)。
検索する文字列のところにカーソルを置きます。CtrlキーとJのキーを同時に押します。何も表示されませんが、何回も押してはいけません。
この画面でCtrlキーとJのキーを押すと改行コードが入ります。改行を入れても画面上何も変わりません。
置換後の文字列にはスラッシュ(/)を入れます。
すべて置換します。改行がなくなってスラッシュ(/)になります。
この置換の画面には、改行コードが残っています。検索する文字列のところで、DeleteキーやBackspaceキーを2、3回押します。
改行コードが入っているかは画面上大変わかりにくいので、置換が終わったら、DeleteキーとBackspaceキーを何回か連打して、改行コードを削除して終わります。
セルの結合を解除します。
条件を選択して、ジャンプします。空白を選択します(参考:【Excelジャンプ】空白セルを一括選択して一括コピーして一括削除する)。
このままセルを削除して、上にシフトすれば完成です。
(2)セル内改行に置換する
問題
さらに、さきほどのリストで、スラッシュを改行に置換して次の表を作りなさい。
解説
B列を選択します。
念のため、検索する文字列でDeleteキーとBackspaceキーを何回か連打しておきます。
検索する文字列にスラッシュ(/)を入れます。置換する文字列のスラッシュを消して、CtrlキーとJのキーを同時に押します。
すべて置換します。これでスラッシュ(/)が改行になります。
置換が終わったら、DeleteキーとBackspaceキーを何回か連打して、改行コードを削除して終わります。
最後に行の高さを広げて完成です。
3.CHAR関数を使った改行の練習
(1)CHAR(10)で改行する
問題
次の会員名簿は、1名の会員の情報が1行で入力されている。
1行目の項目名と各データを改行で連結して、1名の会員につき2行のデータにしなさい。
解説
会員情報のように、大量のデータを入力するには原則として、1件のレコードを1行で入力しなければなりません(参考:【神Excel】8個の基本パターンで完全習得「リスト形式」の教科書)。複数行のデータを作るには、このリストを元にして、数式で改行を挿入します。
セル内改行を数式内で記述するときもAlt+Enterで可能ですが(参考:【Excel】文字列結合、スペース・改行・ダブルクォーテーションの連結)、関数を使う方法もあります。
関数を使う場合はCHAR関数で、「CHAR(10)」と記述します。これはセル内の改行(LF=Line Feed)の文字コードが10番であることを表しています(参考:【ExcelとCSV】本気で理解したい初心者のためのCSV勉強会資料)。
「=B2&CHAR(10)&C2&$C$1」と入力します。「所属」は絶対参照です。
これで氏名と所属が連結できますが、改行が入っていないように見えます。
これはセルの書式設定で、折り返しの設定になっていないことが原因です。折り返して全体を表示するボタンを押します。列幅を広げます。これで改行ができました。
(2)SUBSTITUTEで改行を置換する
問題
SUBSTITUTE関数を用いて改行を削除しなさい。また、改行を半角のアットマーク@に置換しなさい。
解説
前述のとおり、改行の置換は改行の画面で行うこともできますが(Ctrl+J)、関数で行うことも可能です。置換をする関数はSUBSTITUTEです。
- =SUBSTITUTE(対象となる文字列,検索文字列,置換文字列,[置換対象])
改行を空白に置換します。改行はCHAR(10)です。改行が削除されて1行になります。
- =SUBSTITUTE(A1,CHAR(10),"")
改行の代わりにアットマークを挿入するには、改行を@に置換します。
- =SUBSTITUTE(A1,CHAR(10),"@")
(3)行数が多い場合の考え方
問題
次の会員名簿は1名の会員の情報が1行で入力されている。
1行目の項目名と各データを、全角のコロンと改行で連結して、1名の会員につき4行のデータにしなさい。
また、次のように1行空けながら入力しなさい。
解説
4行のデータを作る場合も、2行の場合と考え方は同じですが、数式が長くなるので分けて考えたほうが良いです。まず、1行目の項目名と各データを連結します。なお、項目名は行固定の複合参照です。
- =A$1&":"&A2
4列のデータをCHAR(10)で連結します。
- =E2&CHAR(10)&F2&CHAR(10)&G2&CHAR(10)&H2
折り返して全体を表示するボタンを押します。列幅を広げます。これで改行ができました。
最後にCHAR(10)を連結します。最後に改行を入れたので5行になります。
- =E2&CHAR(10)&F2&CHAR(10)&G2&CHAR(10)&H2&CHAR(10)
これをコピーします。
メモ帳に貼り付けます。CHAR(10)を含むデータをメモ帳に貼り付けるとその前後にダブルクォーテーションが入ります。
置換します。
ダブルクォーテーションを空白にすべて置換することによって、すべて削除します。
これを全部選択してコピーします。
Excelに貼り付けます。
解説は以上です。
4.動画版はこちら(無料)
この記事は、わえなび実力養成講座「ファンダメンタルExcel」Program 8-14-2 のYoutube動画を書き起こして、加筆修正したものです。