Excel 1つのセルに入力された文字列を2つのセルに分けたい時

こんにちは。

先日Excelを受講中の生徒様より、

「セルに入れた文字を分割したい時はどんな関数を入れれば良いのか?」とご質問いただきました。

「○○○○年~○○○○年」と繋げた文字を2つのセルに分けて入れたいとのことでした。

取り出す桁数が揃っていて「年」の字も入れて良いなら、LEFT関数とRIGET関数で簡単に分けられますが、

問題は「年」の文字を表示したくない場合や取り出す桁がそれぞれ違う場合。

数式が少し複雑になります。

 

例えば、音楽家の一覧表の中で「生年〜没年」列の内容を「生年列」と「没年列」にそれぞれ分ける場合をご説明しますね。

「○○○○年~○○○○年」のデータが入っているセルがD5だとします。

まず生年を取り出す場合、LEFT関数とSEARCH関数を組み合わせて使用します。

 

=LEFT(D5,SEARCH("~",D5)-2)

 

LEFT関数は左端から指定した文字数を取り出す関数、

SEARCH関数は対象から指定した文字列の位置を調べる関数です。

データの左端から「~」までの文字数を調べて表示する式になります。

 

次に没年を取り出す式ですが、MID関数とSEARCH関数を組み合わせます。

 

=MID(D5,SEARCH("~",D5)+1,SEARCH("年",D5,SEARCH("~",D5))-SEARCH("~",D5)-1)

 

MID関数は指定した位置から文字列を取り出す関数です。

 

「~」から「年」の間の文字数を調べるため、後の方の「年」までの数から「~」までの文字数を引き算し、その結果の文字数を「~」の後の文字列から取り出しています。

あとは列の下まで式をコピーするだけ。

 

この組み合わせは、取り出す桁が違っても使える汎用性の高い式ですので、ぜひ使ってみてください。

今回はSEARCH関数を使いましたが、代わりにFIND関数を使ってもまったく同じ結果となります。

大文字と小文字を区別したい場合はFIND関数、検索にワイルドカードを使う場合はSEARCH関数を使いましょう。

 

さて、目的の数値を取り出した後は元の列が不要になることも多いかと思います。

が、新しい列の値が数式のまま元の列を削除したら全てエラーに!

せっかく入力したデータが台無しになってしまいます。

元の列を削除する前に、必ず数式を入れた列をコピーして、同じ場所に「値貼り付け」しておきましょう。

 

やり方がわからない場合はお気軽にスタッフにお尋ねくださいね♪