いまさら聞けないExcelの使い方講座
【Excel】文字列の分割が面倒? 一気に解決できる3つの関数を使いこなそう
2024年12月4日 06:55
文字列の分割が従来よりも簡単に
今回は、入力済みの文字列データを分割する際に便利な新関数を3つ紹介します。2022年からMicrosoft 365のExcelで利用できるTEXTBEFORE/TEXTAFTER/TEXTSPLIT関数です。
文字列の分割は、従来の関数でもできているので、あまり目新しい感じはしませんが、例えば、以下のようなコードから「-」に挟まれた“真ん中”の文字列だけを取り出すことを考えてみましょう。「-」の前後の文字数がバラバラなので、FIND関数を使って「-」の位置を探して、MID関数の引数に指定するのが定番でした。
処理の内容は単純ですが、FIND関数を何度も入力する必要があり、複雑なネストに混乱しますよね。一発で記述できる人は少ないと思います。これを一気に解決できるのが、TEXTBEFORE/TEXTAFTER/TEXTSPLIT関数です。
TEXTBEFORE関数とTEXTAFTER関数
TEXTBEFORE/TEXTAFTER関数は、指定したテキスト(区切り記号)の前・後を取り出します。構文は以下の通りです。引数は6つありますが、最初の3つだけ指定すれば事足ります。[見つからない時]は「#N/A」エラーを出したくない場合に指定してください。
使い方は簡単です。上記のサンプルで最初の「-」より前を取り出すなら、「=TEXTBEFORE(A2,"-")」のように指定します。3つめの引数[区切り位置]を省略した場合は「1」と見なされて、1つめの[区切り文字]より前が取り出されます。TEXTAFTER関数の使い方も同様です。
なお、区切り文字として「-」と「/」が混在している場合は「=TEXTBEFORE(A2,{"-","/"})」のように配列の形式で指定します。
“真ん中”を取り出す
冒頭の例にあった「-」に囲まれた文字列を取り出してみましょう。TEXTBEFORE関数とTEXTAFTER関数を組み合わせるだけです。ネストの内側にTEXTAFTER関数、外側にTEXTBEFORE関数を指定することがポイントです。逆にすると「#N/A」エラーが表示されてしまいます。
TEXTSPLIT関数でまとめて分割する
TEXTSPLIT関数を使うと、[区切り文字]で文字列を一気に分割できます。結果はスピルで表示されるので、入力する数式は1つのみです。“真ん中”が欲しいなら結果をコピペしてもいいですね。
なお、TEXTSPLIT関数もTEXTBEFORE/TEXTAFTER関数と同様に、「{"-","/"})」のような配列の形式を利用することもできます。詳しくはこちらの記事も参照してください。