ExcelのTEXTBEFORE・TEXTAFTER関数で商品コードを分ける方法
「PC-001」のように、分類と連番を一つのセルへ入力していると、分類だけで集計したい場面で困ります。TEXTBEFORE関数とTEXTAFTER関数を使うと、区切り文字の前後を別々に取り出せます。
区切り文字の前後を取り出す数式
=TEXTBEFORE(A2,"-") =TEXTAFTER(A2,"-")
1行目の数式は、A2の最初のハイフンより前を返します。2行目はハイフンより後を返します。区切り記号はハイフンに限らず、スラッシュやアンダースコアも指定できます。
商品コードを分ける手順
- A列に「分類-番号」のように、同じ区切り文字で統一したコードを用意します。
- B2に
=TEXTBEFORE(A2,"-")を入力します。 - C2に
=TEXTAFTER(A2,"-")を入力します。 - 結果が想定どおりなら、必要な行まで数式をコピーします。
区切り文字がないデータが混ざる場合
区切り文字がないセルではエラーになることがあります。入力ルールをそろえるか、見つからない場合の表示を指定する引数を使う方法を検討します。古いExcelではこの関数が使えないため、数式を渡す相手のバージョンも確認します。
ハイフンには似た文字が複数あります。全角・半角や長音記号が混ざると、同じように見えても分割できません。入力時の記号を統一します。
確認方法
「事務-012」のような架空コードを一つ入力し、左側が「事務」、右側が「012」になることを確かめます。2個以上の区切り文字があるコードは、どの位置で区切るかも事前に決めます。
コードの例外も含めて3行で確認する
A2へAB-001、A3へCD-002、A4へEF003を入力します。B2へ=TEXTBEFORE(A2,"-")、C2へ=TEXTAFTER(A2,"-")を入れると、ABと001が期待結果です。
A4には区切りがないため、同じ式をコピーすると一致しないエラーになります。元コードを残したまま、区切りの欠落を確認します。先に全部空欄へ置き換えると、入力不備に気付きにくくなります。
さらにAB-001-赤のように区切りが複数ある場合は、最初の区切りで分けるのか、最後の区切りで分けるのかを先に決めます。商品管理番号そのものは文字列として扱い、後半の001を数値1に変える必要があるかも用途に合わせて判断してください。
対応バージョン・公式情報
最終確認日:2026年9月22日
対応バージョン:Excel for Microsoft 365、Excel for Microsoft 365 for Mac、Excel 2024、Excel 2024 for Mac。
Microsoft Support「TEXTBEFORE 関数」