概要
「ABC-123 から “ABC” と “123” に分けたい」
「型番 P001-東京 を “P001” と “東京” に分けたい」
「数字部分と文字部分を、それぞれ別のセルに分離したい」
こういうときに便利なのが TEXTSPLIT関数です。
TEXTSPLITは「区切り文字でセルの内容を分割して、横や縦に自動展開してくれる関数」です。
ここでは、特に次のようなケースを中心に解説します。
- すでに「数字と文字の間に区切り記号(- や _ など)が入っている」パターン
- TEXTSPLITで分けたあと、「左を文字」「右を数字」として扱う基本パターン
「ABC123」のように区切りが一切ない場合は、TEXTSPLITだけでは難しいので、最後に“1文字ずつ分解する応用”も少しだけ触れます。
TEXTSPLIT 関数の基本
TEXTSPLIT の書式はこうです。
=TEXTSPLIT(文字列, 列方向の区切り文字, [行方向の区切り文字], …)
いちばんよく使うのは、
=TEXTSPLIT(文字列, "区切り文字")
という形です。
例えば、A2 に
ABC-123
と入っているとき、
=TEXTSPLIT(A2, "-")
と書くと、セルの右側に
左のセルに「ABC」
その右のセルに「123」
というように、自動で「ABC」「123」が別セルに展開されます。
区切り文字が「-」「_」「/」「スペース」などであれば、その文字を指定するだけで、数字と文字を分けられます。
区切り文字がある場合の数字と文字の分離
例1:ハイフン「-」で分かれている場合
A2 に
P001-東京
という文字列が入っているとします。
ここから「P001」(数字+文字のコード部分)と「東京」(文字部分)を分けたい場合。
B2 に次の式を書きます。
=TEXTSPLIT(A2, "-")
結果は、
B2:P001
C2:東京
というふうに、ハイフンで左右に分かれます。
ここで、もし「左をコード」「右を文字列」として名前をつけて使いたい場合は、B列を「コード」、C列を「拠点名」と見なせばOKです。
例2:アンダースコア「_」で分かれている場合
A2 に
ABC123_TOKYO
という文字列が入っていて、
「ABC123」(文字+数字のID)と「TOKYO」(文字だけ)を分けたい場合。
B2 に次の式を書きます。
=TEXTSPLIT(A2, "_")
結果は、
B2:ABC123
C2:TOKYO
となり、アンダースコアで簡単に分離できます。
例3:スペースで分かれている場合
A2 に
商品A 1000
という文字列が入っていて、
「商品名」と「価格」を分けたい場合。
=TEXTSPLIT(A2, " ")
とすると、
B2:商品A
C2:1000
というふうに、スペースで左右に分かれます。
C2は「数字っぽい文字列」なので、必要なら VALUE 関数で数値に変換してあげれば、合計などの計算にも使えます。
区切りが「複数種類」ある場合
例えば、A2 に
商品A-1000_東京
のように、間に「-」と「_」が混ざっているケースもあります。
TEXTSPLITは「複数の区切り文字」を指定することもできます。
=TEXTSPLIT(A2, {"-","_"})
とすると、「-」と「_」のどちらも“区切り文字”として扱われます。
この例だと、
B2:商品A
C2:1000
D2:東京
のように、3つの要素に分割されます。
この仕組みを利用すれば、
- 文字部分(商品名)
- 数字部分(価格)
- 文字部分(エリア)
というふうに、数字と文字を自然に別列に分けて扱うことができます。
区切りがない場合のヒント(1文字ずつ分解)
「ABC123」のように、間に「-」や「_」が無いケースは、TEXTSPLITだけではきれいに分けにくいです。
ただし「1文字ずつバラす」という意味で TEXTSPLIT を使うことはできます。
例えば、A2 に
AB12C3
が入っているとき、1文字ずつ分解するには、次のようにします。
=TEXTSPLIT(A2, "")
これで、
B2:A
C2:B
D2:1
E2:2
F2:C
G2:3
というように、1文字ごとに分かれて並びます。
ここからさらに「数字だけ」「文字だけ」に分けるには、FILTER関数やISNUMBERなどとの組み合わせが必要で、少しレベルが上がります。
初心者のうちは、
- まずは「数字と文字の間に区切り文字を入れてもらう(- や _ など)」
- そのうえで TEXTSPLIT で分ける
という設計にしたほうが、シンプルで理解しやすいです。
例題
問題1
A2 に「ABC-123」という文字列が入っています。
これを「ABC」と「123」に分けて、B2 に「ABC」、C2 に「123」と表示したいです。
TEXTSPLIT を使った式を書いてください。
=TEXTSPLIT(A2, "-")
問題2
A2 に「P001-東京」という文字列が入っています。
「P001」と「東京」に分けたいです。
B2 に TEXTSPLIT を使った式を書いてください。
=TEXTSPLIT(A2, "-")
問題3
A2 に「ABC123_TOKYO」という文字列が入っています。
「ABC123」と「TOKYO」に分けたいです。
TEXTSPLIT を使った式を書いてください。
=TEXTSPLIT(A2, "_")
問題4
A2 に「商品A-1000_東京」という文字列が入っています。
「商品A」「1000」「東京」の3つに分けて、B2~D2に横並びで表示したいです。
複数の区切り文字を指定して TEXTSPLIT を使った式を書いてください。
=TEXTSPLIT(A2, {"-","_"})
問題5
A2 に「AB12C3」という文字列が入っています。
これを 1 文字ずつ分解して、B2 から右方向に「A」「B」「1」「2」「C」「3」と並べたいです。
TEXTSPLIT を使った式を書いてください。
=TEXTSPLIT(A2, "")
TEXTSPLIT のポイントは、
- 「どこで分けるか」を区切り文字で決める
- 分かれた結果が、自動的に横(または縦)に展開される
という 2 点です。
数字と文字の間に「-」「_」「スペース」などの区切りをきちんと設計しておけば、
TEXTSPLIT 1 本で、数字部分と文字部分をきれいに別々の列に分離できるようになります。
