いまさら聞けないExcelの使い方講座

【Excel】関数もコピペも無用! セル内で改行された文字列を別々のセルに分けるテク

セルに含まれる“改行”で別々のセルに分割したい!

関数を利用しなくても“改行”で分割可能

 [Alt]+[Enter]キーを押して、セル内で改行されたデータを分割したいことがありますよね。改行を一括置換して、CSV(TSV)ならセル内にタブを挿入すれば解決できそうですが、エクセルの仕様上できません。

 元のデータを複数のセルにコピーして不要な部分を削除、と操作しているかもしれませんが、その作業は不要です。編集ミスの可能性もありますし、何しろ時間がかかって仕方ありません。

“改行”の含まれたデータを別々のセルに分割する際、コピー&ペーストをくり返していませんか?

 もっと効率的な方法が2つあります! 「Power Query」と「フラッシュフィル」です。どちらもコピペをくり返すより圧倒的に楽できます。さっそく使ってみましょう。

Power Queryで分割する

 Power Queryは入力済みのデータを加工することも可能です。今回は“改行”の位置で別々のセルに分けたいので、[列の分割]の機能を利用します。ここでは、改行の位置でデータを分割して「氏名」「郵便番号」「住所」の順番に入れ替えてみます。

なお、[列の分割]では「-」や「/」などの区切り文字で分割できるので、いろいろなデータを処理できるメリットがあります。

処理するデータの入力されたセル範囲を選択しておきます(①)。[データ]タブ(②)の[テーブルまたは範囲から](③)をクリックします
[テーブルの作成]ダイアログボックスが表示されます。選択したセル範囲が自動的に入力されています(④)。[先頭行をテーブルの見出しとして使用する](⑤)のチェックは、選択したセル範囲によってON/OFFします。[OK](⑥)をクリックします
[Power Queryエディター]の画面が表示されます。[ホーム]タブ(⑦)の[列の分割](⑧)-[区切り文字による分割](⑨)をクリックします
区切り文字に[カスタム](⑩)を選択します。下の入力欄の内容を削除して空白にします(⑪)
[特殊文字を使用して分割](⑫)にチェックを付けて、[特殊文字を挿入]-[改行](⑬)を選択します
「#(If)」と入力されます(⑭)。[OK](⑮)をクリックします
改行の位置で分割されました。氏名の入力されている列の見出しをドラッグして、左端までドラッグします(⑯)
列の位置が移動しました(⑰)。[保存して読み込む](⑱)をクリックします
[Power Queryエディター]の画面が閉じて、エクセルの画面が表示されます。改行の位置で分割されたデータがテーブルとして生成されました

 Power Queryで処理した結果は「テーブル」として新しいワークシートに保存されます。テーブルが不要なら、内容をコピー&ペースとして、[テーブル]シートを削除してもいいでしょう。

フラッシュフィルで分割する

 フラッシュフィルは、データ整形の傾向をエクセルが予測して以降のデータを処理する優れものです。処理の例として、1,2件のデータを入力しておき[Ctrl]+[E]キーを押すだけと操作も簡単。ここでは改行の位置で分割しますが、文字列の結合などにも利用できます。

 ただし、意図通りに動作しないこともあるので過信は禁物です。この例なら、改行が含まれていないデータは正しく分割されません。

処理の例として最初のデータを入力しておきます(⑲)。[Ctrl]+[E]キーを押します(⑳)
氏名をまとめて取り出せました(㉑)
郵便番号も同様に取り出せます(㉒)
住所も同様に取り出せます(㉓)

無意味なコピペはやめよう

 コピー&ペーストはデータの加工に重宝しますが、くり返し操作するのは無駄かもしれません。もっと便利な方法がないか検討してみましょう。特にPower Queryでは複雑な処理も可能です。文字列の分割のような簡単な作業で慣れておくと将来役立つと思いますよ。