大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excelで、文字列を区切り文字で分割して、抽出する方法について、ご紹介します。残念ながら、文字列を分割するExcel関数は、ありません。FIND関数、LEFT関数、MID関数を組み合わせて、文字列を分割することになります。具体的に解説していきます。

はじめに

この記事では、文字列を区切り文字で分割して、抽出する方法について、ご紹介します。

文字列を分割するExcel関数は、ありません。

文字列を分割する場合は、FIND関数、LEFT関数、MID関数を組み合わせて、文字列を分割します。

1つの区切り文字であれば、Excel関数をまとめても、数式が理解できます。

2つの区切り文字を分割する場合は、数式がかなり長くなりますので、作業列を使った方がいいです。

あとから変更したり確認するのが、簡単になります。

では、文字列を区切り文字で分割して、抽出する方法について、解説していきます。

この記事で紹介すること

  • 文字列を区切り文字で分割して、抽出する方法

本記事の内容を動画にまとめています

目次から見たい項目へ移動すると便利ですよ。

目次

Excelで文字列を1つの区切り文字で分割して抽出

Excelで、文字列を1つの区切り文字で、分割して抽出してみます。

使う関数は、FIND関数とLEFT関数、MID関数です。

では、具体的に解説していきます。

1つの区切り文字で分割するイメージ

やりたいことは、文字列を区切り文字で、分割するということです。

LEFT関数とMID関数を使って、次のような分割がしたいです。

=LEFT(A2,2)
=MID(A2,4,1000)

セルに入力してみます。

区切り文字で分割したい

文字列を区切り文字で分割して抽出したい

LEFT関数とMID関数には、仮の数値を入力しています。

このLEFT関数とMID関数に入力した、仮の数値を取得するすれば、区切り位置で文字列を分割できます。

区切り文字の「位置」を取得する必要がある

LEFT関数とMID関数に入力した仮の数値をどうにか取得したい

この「2」とか「4」を、「FIND関数」を使って、取得していきます。

区切り文字の「位置」を検索(FIND関数)

区切り文字「-」の「位置」は、「FIND関数」を使うと、取得することができます。

入力する数式は、次のようになります。

=FIND("-",A2)

では、セルに入力してみます。

区切り文字の「位置」を検索

FIND関数で区切り文字の位置を検索した結果

結果は、「3」文字目となりました。

区切り文字「-」は、3文字目ですね。

この取得した「3」文字目を使って、区切り文字で分割していきます。

文字列を分割(LEFT関数とMID関数)

先ほど見つけた「3」文字目を使って、文字列を分割します。

使うExcel関数は、LEFT関数とMID関数になります。

入力する数式は、次のようになります。

=LEFT(A2,A4-1)
=MID(A2,A4+1,1000)

セルに入力してみます。

区切り文字で分割

LEFT関数とMID関数で文字列を分割した結果

結果は、「ab」と「123」を分割して、抽出することができました。

それぞれの取得を解説します。

LEFT関数で1つ目の文字列を抽出

1つ目の文字列の抽出は、LEFT関数を使って、次のように取得しています。

LEFT関数を使って1つ目の文字列を抽出

区切り文字「-」が「3」文字目なので、その前の文字の「2」文字目までを、抽出しています。

MID関数で2つ目の文字列を抽出

2つ目の文字列の抽出は、MID関数を使って、次のように取得しています。

MID関数を使って2つ目の文字列を抽出

区切り文字「-」が「3」文字目なので、その次の文字の「4」文字目以降を、抽出しています。

MID関数の3番目の引数に、大きい値を入力すると、以降の文字を抽出できます。

Excel関数をまとめる

FIND関数、LEFT関数、MID関数をまとめると、次のようになります。

=LEFT(A2,FIND("-",A2)-1)
=MID(A2,FIND("-",A2)+1,1000)

セルに入力してみます。

関数をまとめて区切り文字で分割

FIND、LEFT、MID関数をまとめて区切り文字で分割した結果

結果は、「ab」と「123」を抽出できました。

区切り文字が「1つ」の場合の分割は、関数をまとめても確認しやすいですね。

次は、区切り文字が「2つ」の場合で、やってみます。

Excelで文字列を2つの区切り文字で分割して抽出

区切り文字が、「2つ」の場合で、文字列を分割して抽出してみます。

2つの区切り文字で分割するイメージ

「2つ」の区切り文字で分割するイメージは、こんな感じです。

=LEFT(A2,2)
=MID(A2,4,3)
=MID(A2,8,1000)

「仮の数値」を、関数に入力しています。

2つの区切り文字で分割

2つの区切り文字で文字列を分割するイメージ

こんな感じで、文字列を分割して抽出していきます。

取得する必要がある数値は、仮で入力した数値です。

区切り文字の「位置」を取得する必要がある

文字列を分割するのに取得する必要のある数値

「FIND関数」を使って区切り文字「-」の「位置」を取得して、仮の数値を埋めていきます。

解説していきます。

区切り文字の「位置」を検索(FIND関数)

区切り文字の「位置」をFIND関数で、検索します。

1つ目の区切り文字は、簡単です。

1つ目の区切り文字の「位置」を検索

次のように入力します。

=FIND("-",A2)

セルに入力します。

1つ目の区切り文字の位置をFIND関数で取得

結果は、「3」文字目となります。

2つ目の区切り文字の「位置」を検索

2つ目の区切り文字の「位置」は、次のようにFIND関数で、検索します。

=FIND("-",A2,A4+1)

1つ目の区切り文字は「3」文字目で、その次の「4」文字目から、検索するのが、ポイントです。

セルに入力します。

2つ目の区切り文字の「位置」をFIND関数で検索した結果

結果は、「7」文字目となります。

区切り文字の「位置」がわかれば、LEFT関数とMID関数で、文字列を抽出できます。

文字列を分割(LEFT関数とMID関数)

2つの区切り文字で区切りられた文字列を、LEFT関数とMID関数で分割する数式は、こんな感じです。

=LEFT(A2,A4-1)
=MID(A2,A4+1,A6-A4-1)
=MID(A2,A6+1,1000)

セルに入力します。

2つの区切り文字で分割

LEFT関数とMID関数で2つの区切りで区切られた文字列を分割した結果

結果は、「ab」と「123」と「cd」となりました。

文字列を分割できています。

1つ目の文字列をLEFT関数で抽出

1つ目の文字列は、LEFT関数で次のように抽出しています。

1つ目の文字列をLEFT関数で抽出

1つ目の区切り文字は「3」文字で、その一つ前の「2」文字目までを抽出しています。

2つ目の文字列をMID関数で抽出

2つ目の文字列が難しいですね。

2つ目の文字列は、MID関数で抽出しています。

2つ目の文字列をMID関数で抽出

開始文字と文字数は、こんな感じで計算します。

  • 開始文字:1つ目の「-」の次の「4」文字目から(3+1=4文字目から)
  • 文字数 :1つ目と2つ目の「-」の間の文字数で「3文字」(7-3-1=3文字)

という感じで、抽出します。

3つ目の文字列をMID関数で抽出

3つ目の文字列は、MID関数で抽出します。

3つ目の文字列はMID関数で抽出

2つ目の「-」から次の文字列以降を抽出します。

「7+1=8文字目以降」となります。

こんな感じで、文字列を区切り文字で、分割することができます。

Excel関数をまとめる

FIND、LEFT、MID関数をまとめると、こんな感じになります。

=LEFT(A2,FIND("-",A2)-1)
=MID(A2,FIND("-",A2)+1,FIND("-",A2,FIND("-",A2)+1)-FIND("-",A2)-1)
=MID(A2,FIND("-",A2,FIND("-",A2)+1)+1,1000)

セルに入力します。

関数をまとめて区切り文字で分割

FIND、LEFT、MID関数をまとめて文字列を区切り文字で分割した結果

結果は、「ab」と「123」と「cd」となりました。

ただ、数式が長い。

これは、作業列を使った方がいいですね。

作業列を使おう

複数のセルで、文字列を分割したい場合は、こんな感じで作業列を使うといいです。

=FIND("-",A6)
=FIND("-",A6,B6+1)
=LEFT(A6,B6-1)
=MID(A6,B6+1,C6-B6-1)
=MID(A6,C6+1,1000)

セルに入力します。

作業列を使って区切り文字で分割

数式を分けてセルに入力して文字列を区切り文字で分割した結果

数式を分けると、何をしているのかがわかりやすいです。

あとから変更したい場合も、確認や変更が簡単ですね。

おわりに

この記事では、文字列を区切り文字で分割して、抽出する方法について、ご紹介しました。

文字列を分割するExcel関数は、ありません。

文字列を分割する場合は、FIND関数、LEFT関数、MID関数を組み合わせて、文字列を分割します。

1つの区切り文字であれば、Excel関数をまとめても、数式が理解できます。

2つの区切り文字を分割する場合は、数式がかなり長くなりますので、作業列を使った方がいいです。

あとから変更したり確認するのが、簡単になります。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す