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

こんにちは。

先日(4月25日)、Excelのセルの文字を2つのセルに分けて入れたい場合として、LEFT関数とSEARCH関数の組み合わせをご紹介しました。

 

この時質問された生徒様は教室PCでExcel2019を使用されていたため、この組み合わせを使いましたが、

もし、Excel365を使用されるならもっと簡単な関数があるのでご紹介しますね。

 

前回と同じ表を使用して、音楽家の生年~没年(D列)を生年列(B列)と没年列(C列)に分けてみます。

 

まず生年を取り出す場合、TEXTBEFORE関数を使用します。

TEXTBEFORE関数は、指定した区切り文字より前にある部分を取り出す関数です。

D列に「○○○○年 ~ ××××年」というデータが入っているとします。

 

=TEXTBEFORE(D4,"~") 

「~」より前の文字列を取り出すので、結果は「○○○○年」と表示されます。

もし「年」の字を除いて「○○○○」と表示したいなら、区切り文字を「~」ではなく「年」にします。

 

次に没年を取り出す場合は、TEXTAFTER関数を使用します。

TEXTAFTER関数は、指定した区切り文字より後にある部分を取り出す関数です。

 

=TEXTAFTER(D4,"~")

「~」より後の文字列を取り出すので、結果は「××××年」と表示されます。

 

 

もし「年」の字を除いて「××××」と表示したいなら、TEXTBEFORE関数を組み合わせて使います。

 

=TEXTBEFORE(TEXTAFTER(D6,"~"),"年") 

「~」より後の文字列「××××年」から、「年」より前の文字列「××××」を取り出して表示させる式になります。

 

 

また、スピル配列を利用して文字列を複数列・複数行に分割するTEXTSPLIT関数を使用することもできます。

 

=TEXTSPLIT(D5,"~")

この場合、~を区切り文字として前部分と後ろ部分がそれぞれ別の列(または行)に分割して表示されます。

「生年」のセルこの式を入れるだけで「没年」セルにもスピル配列で没年が表示されるため効率的です。

但し、シンプルに前後に分ける式のため、「年」の文字を除くことができません。

TEXTBEFORE、TEXTAFTER、TEXTSPLITは目的に応じて使い分ける必要があります。

 

 

最後に、前回もご説明しましたが、元の列(D列)が不要であれば列を削除する前に必ず、数式を入力したセル(B列C列)を全てコピーして同じ場所に「値貼り付け」しておきましょう。

 

Excel365で追加された関数には便利なものが多いですね。

関数を使って効率化したいものがありましたら、お気軽にスタッフにご相談くださいね♪