Excelで1つのセルに入った文字データを分割する方法

Excelで1つのセルに入った文字データを分割する方法

Excelの作業をするときに、何かで区切られたデータを分割する方法は意外と知られていません。
なので、ちょっとしたやり方を幾つかまとめてみました。
Excelの基本機能と、ついでに関数での処理方法も作ってあります。

Excelの基本機能を使って分割する方法

Excelの作業をする時に、何かデータを入れて分割する事がそれなりに多くありますが、基本機能で分割できることはあまり知られていません。
例で良いデータとして国土交通省のデータがありましたので、こちらを使ってサンプルを作ってみます。

https://www.mlit.go.jp/road/sign/sign/annai/6-hyou-timei.htm

このように「、」で区切られたデータが入っています。
区切り位置はバラバラで規則性はありません。

念のため、データ整理も兼ねて新しいブックに貼り付けます。
今回は関数が入っていませんが、ダウンロードしたデータなので、何もしていないExcelブックだと、保護ビューになってしまうのも理由です。

その後、区切り位置を指定して別のセルに分ける手順としては
上のタブにある『データ』に入っている『区切り位置』を選択します。

ショートカット:『Alt→A→E』

Excelで1つのセルに入った文字データを分割する方法

データの形式に合わせて、元のデータの形式を選びます。
多くの場合で、上の「カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選ぶのがよいでしょう。

Excelで1つのセルに入った文字データを分割する方法

区切り文字は「その他」を選び今回は「、」を指定します。
もちろん、スペースなどの他の文字でも反応します。
データに合わせた形式を指定して下さい。

Excelで1つのセルに入った文字データを分割する方法

画像に書かれているとおり、区切った後のデータ形式を選びます。
特別な理由がないデフォルトの設定のまま完了して良いでしょう。
完了した後、表示形式を変更したほうが効率が良いことも多いです。

Excelで1つのセルに入った文字データを分割する方法

完了したらこのようにデータが区切られています。

とっても簡単ですね。

貼り付けをしたら勝手に別れることも

区切り位置の設定をしていると、その設定が残ってしまうことがあります。
その場合は「絶対使わないであろう区切り文字」を再設定してあげれば、勝手にセルが別れることもありませんので、設定し直して下さい。

関数を使って区切る方法

事前に書いておきますが、この関数は『無駄』な内容です。
ですが、何か細かい事をやる時に役に立つこともあると思いますので、見聞を広げる程度にどうぞ。

手順としては「一番左の文字列を取り出す」「左から2番目の文字列を取り出す」「文字列を検索して、その隣の文字列を吐き出す」の3つの処理を行います。

上記に書いた「Excelの基本機能」を知らなかった時に、頑張って作っていたので、ついでに書いておくだけです。
昔からある機能なのですが、知らないとは怖いものですね。。。

一番左の文字列を取り出す

Excelで1つのセルに入った文字データを分割する方法
まず最初に「、」で区切られる最初の文字列を取り出します。
次の関数の基準点にするためです。

今回の目的とそれるので、関数の説明は省きます。関数についてはお調べいただくか、機会があれば説明を行います。
文字数をFINDで見つけて、必要な文字列を取り出す処理を行います。

左から2番目の文字列を取り出す

Excelで1つのセルに入った文字データを分割する方法
左から2つ目の文字列をとりだします。

この処理ではA1にあるB1の文字の文字数を調べて、最初の「、」までの文字数を処理して、その値を返すように作りました。
エラーが起きた場合に一度通常のMID、FINDの処理を行うのは「、」の2つ目が無かった時にエラーになってしまうからです。

文字列を検索して、その隣の文字列を吐き出す

2つ目の「左から2番目の文字列を取り出す」処理で完成しそうな雰囲気がありますが、残念ながら「南さつま」「さつま」のような文字列があると、繰り返しが起きてしまうのです。

Excelで1つのセルに入った文字データを分割する方法
2番目の文字列同様に前の文字列を探し出し処理をします。
2番目の文字列を取り出す処理と違うのは「、」で囲まれている状態を作りた出すためです。

こちらもIFERRORが2つあるのは「、」で囲まれた文字列である必要があるためです。
最後の文字列を取り出す処理を行うためにエラー処理を2回行います。

最後にコピー&値で貼り付けで使えるデータになる

関数で分けた場合は、最後に値で貼り付け直すことを忘れないようにしましょう。
他のデータと混同した場合に、そのままコピー&ペーストを行うと関数のエラーが出ることがあります。
特に人に渡すときには、この処理を行った場合は空白セルに変化してしまい、使い物にならないことも考えられますね。

という内容を書いてみたものの、よく考えれば関数でわけずに基本的な機能で分けてあげれば、通常のセルになるのですから、そのまま使えばいいですね。