こんにちは。
先日(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で追加された関数には便利なものが多いですね。
関数を使って効率化したいものがありましたら、お気軽にスタッフにご相談くださいね♪