残業を減らす!Officeテクニック
ExcelのLEFT/MID/RIGHT関数は複雑すぎる! もっと楽に文字列を分割・抽出する関数
2026年3月23日 06:55
1つのセルに複数の情報が入った表を扱うことがありますよね。記号やスペースなどで区切られていることが一般的です。
閲覧するだけなら問題はありませんが、このままでは並べ替えや絞り込みが思い通りに動作しないため、集計や分析には向きません。実務では扱いにくい状態と言えます。
では、区切り記号の位置で分割したり、必要な部分だけを取り出したりしたい場合は? 手間なく処理するために関数を利用すると便利です。
氏名を取り出すには、FIND関数で「/」の位置を取得して、LEFT関数を使う。「/」と「・」で区切られた部署と地域を分割するには、LEFT/MID/RIGHT関数、さらにFIND/LEN関数を組み合わせて……、と考えた人は、Excelを使い込んでいますね?
LEFT/MID/RIGHT関数を利用して目的の文字列を取り出す場合は、FIND関数やLEN関数で区切り記号の位置を探す必要があるため、どうしても数式が長くなってしまいます。区切り記号を除外するための調整(-1や+1)が必要になるため、理解しにくいものです。そこで今回は、このような「文字列分割」を簡略化できる新しい関数をまとめて紹介します。
区切り記号の位置で分割できるTEXTSPLIT関数
区切り記号の位置で別々のセルに分割して表示したい場合は、TEXTSPLIT関数が便利です。引数[テキスト]と[列区切り記号]もしくは[行区切り記号]の2つを指定することで動作します。
[空のセルは無視]は、区切り記号が連続する場合に無視(TRUE)するか、空白を含める(FALSE)かを指定します。既定「FALSE」で省略可能です。
[一致モード]は、区切り記号の大文字と小文字を区別するかどうかです。省略時は大文字と小文字を区別する「0」と見なされます。[パディング値]は[列区切り記号]と[行区切り記号]の両方を指定した場合、該当する区切り記号が存在しない場合に表示する値を指定します。既定では「#N/A」となります。
単純な例として「/」の位置で分割してみましょう。ここでは横方向に分割するので、[列区切り記号]に「"/"」と指定します。
TEXTSPLIT関数に複数の区切り記号を指定する
「/」に加えて「・」の前後でも分割する場合は、「{"/","・"}」のように、「{」と「}」で囲んで複数の区切り記号を指定することができます。MID/FIND関数を組み合わせた数式と比較してかなり簡単ですよね。
区切り記号が増減する可能性がある場合は、リスト化しておくと便利です。該当の区切り記号が含まれない場合は無視されます。
区切り記号の前後を取り出すTEXTBEFORE/TEXTAFTER関数
区切り記号を目安として「前」や「後」を取り出せるのが、TEXTBEFORE/TEXTAFTER関数です。TEXTSPLIT関数と同様に、引数[テキスト]に分割する対象、[区切り記号]に区切り記号を指定します。
対象のセルと目的の区切り記号のみを指定することがほとんどでしょう。3つめ以降の引数は省略して構いません。例えば「/」より前の氏名を取り出したい場合は「=TEXTBEFORE(B2,"/")」のように指定します。
なお、TEXTBEFORE/TEXTAFTER関数の引数[テキスト]にセル範囲を指定して、「=TEXTBEFORE(B2:B6,"/")」のように入力すると、結果は下方向へスピルで表示されます。
TEXTAFTER関数の使い方も同様です。地域を取り出すには「・」より後ろとなるので、数式は「=TEXTAFTER(B2:B6,"・")」のようになります。
「/」と「・」の間を取り出す場合は、TEXTBEFORE/TEXTAFTER関数を組み合わせます。どちらを外側にしても構いませんが、区切り記号の組み合わせを間違えないように注意してください。
文字列の分割に使える関数は他にもありますが、TEXTSPLIT/TEXTBEFORE/TEXTAFTER関数は直感的に使えて、数式も単純化できます。データ整形の1つの方法として覚えておくと便利ですよ。







































