エクセルで文字列の中の特定の文字を抽出してくれる関数はいくつかあるが、その中の一つにLEFT関数がある。
LEFT関数の使い方
書式
LEFT関数
LEFT(文字列,抽出文字数)
左端から指定文字数を抜き出す方法
まずは、下記のようにA1セルに「エクセルで文字を抽出」というテキストを入力。
| A | B | 結果 | |
|---|---|---|---|
| 1 | エクセルで文字を抽出 |
そしたら、B1のセルに下記の書式を入力する。これは、A1セルの左端から4文字を抜き出すという意味になる。
LEFT関数
=LEFT(A1,4)
| A | B | 結果 | |
|---|---|---|---|
| 1 | エクセルで文字を抽出 | =LEFT(A1,4) |
すると左端から4文字の「エクセル」が抜き出されて結果が表示される。
| A | B | 結果 | |
|---|---|---|---|
| 1 | エクセルで文字を抽出 | =LEFT(A1,4) | エクセル |
このようにLEFT関数は、指定したセルの文字列から指定した文字数を文字列の左端から抽出してくれる。
半角・全角に関係なく指定した文字数での抽出となる。
また、LEFT関数は左端から指定の文字数を抽出するが、右端から指定の文字数を抽出できるRIGHT関数や、指定の文字位置から指定の文字数で文字を抽出してくるMID関数もある。
LEFT関数で複数条件を使う方法
LEFT関数では、書式の「抽出文字数」の部分を他の関数を使うことで複数条件の複雑な使い方ができる。
氏名の名字のみを抜き出す方法
例えば下記A列の氏名で「名字 名前」のように「名字」と「名前」の間に全角の空白がある場合に、名字のみを抜き出す方法。
| A | B | 結果 | |
|---|---|---|---|
| 1 | 金城 武 | ||
| 2 | 佐々木 悟 |
そしたら、まずは下記のようにB1セルにLEFT関数を入力する。
| A | B | 結果 | |
|---|---|---|---|
| 1 | 金城 武 | =LEFT(A1,) | |
| 2 | 佐々木 悟 |
LEFT関数を使って名字の文字数を数えて手動で数字を指定するのは大変なので、それを自動でカウントして名字だけを抜き出せるようにしたい。
名字の文字数をカウントするには、名字と名前の間に全角の空白があるので、その「空白が何番目の文字か」を調べることができれば実現できる。そしてそれを実現できるのがFIND関数だ。
FIND(検索文字列,対象,開始位置)
次にLEFT関数の「抽出文字数」に下記のFIND関数を入力する。
FIND(" ",A1,1)
ここでのFIND関数の意味は下記の通りである。
- 検索文字列 = 全角の空白を指定
- 対象 = A1セル
- 開始位置 = 1文字目から
B1セルには下記の通り入力すると、結果は「金城」と表示される。
| A | B | 結果 | |
|---|---|---|---|
| 1 | 金城 武 | =LEFT(A1,FIND(“ ”,A1,1)) | 金城 |
| 2 | 佐々木 悟 |
ただし、上記の手順だけでは「金城 」のようにパッと見は分からないかもしれないが、「金城」の後の空白も含まれてしまう。というのもFIND関数での空白は3番目と表示されてしまうからだ。なので、この余分な空白を削除するためには「3」から「1」を引く式を入れる必要がある。
=LEFT(A1,FIND(“ ”,A1,1)-1)
| A | B | 結果 | |
|---|---|---|---|
| 1 | 金城 武 | =LEFT(A1,FIND(“ ”,A1,1)-1) | 金城 |
| 2 | 佐々木 悟 | =LEFT(A2,FIND(“ ”,A2,1)-1) | 佐々木 |
最後尾の特定の単語を削除する方法
同様にLEFT関数で複数条件を使って、文字列の最後尾の文字列が揃っている場合にそれらを除外する方法。
例えば、下記のA列のようにブラジルコーヒー、ベトナムコーヒーなどのように文字列データが並んでいたとして、「コーヒー」という単語を除外してB列に国名だけを抽出したい場合があるとする。
| A | B | 結果 | |
|---|---|---|---|
| 1 | ブラジルコーヒー | ||
| 2 | ベトナムコーヒー |
実際には下記の書式をB1セルに入力すれば実現できる。
LEFT関数
=LEFT(A1,LEN(A1)-4)
考え方としては、LEFT関数で左端から指定の文字数を抽出すればいいだけだが、その左端の文字数が不特定なので、それを求めることから始める。
例えば、A1セルの文字数を調べるにはLEN関数を使用し、書式は以下の通りになり、ブラジルコーヒーであれば「8」となる。
LEN関数
=LEN(A1)
そして、A1の文字数が分かったら、そこから「コーヒー」の4文字を引いてやると「コーヒー」以外の国名の文字数が分かる。
それが、下記の書式になる。
LEN関数
=LEN(A1)-4
後は、LEFT関数の書式に当てはめ、文字列に「A1」、抜き出す文字数は「LEN(A1)-4」となり、下記の書式が完成する。
LEN関数
=LEFT(A1,LEN(A1)-4)
A列をまるごと別の列にコピーし、置換のオプションで列を限定指定してやれば、もっと簡単に「コーヒー」を削除して国名を抽出できるが、今回はLEFT関数のサンプルとその考え方について書いてみた。
メールアドレスの@より前を抽出する方法
SEARCH関数を使うともっと簡単にできるが、サンプルとして下記の式でメールアドレスの「@」より前の部分を抽出できる。
=LEFT(A1, SEARCH("@", A1) - 1)
| A | B | 結果 | |
|---|---|---|---|
| 1 | sample@gmail.com | =RIGHT(A1, SEARCH(“@”, A1) – 1) | sample |