【Excel・エクセル】特定の文字より前までを抽出する!LEFT関数×FIND関数

アドレスの@より前までの文字、を取り出せないかな?

それなら、LEFT関数とFIND関数を組み合わせるといいんよ。
- 特定の文字までを抽出するなら、LEFT関数とFIND関数を組み合わせる
- =LEFT(セル,FIND(“特定の文字",セル)-1)
- Excel365ならTEXTBEFORE関数が簡単
【Excel・エクセル】LEFT関数とFIND関数をおさらい
画像のように、特定の文字までを抽出する場合、LEFT関数とFIND関数を組み合わせます。


まずは2つの関数をおさらいしてみよう。
LEFT関数は、文字列の左から任意の文字数までを抽出する関数です。

特定の文字以降を抽出する方法、特定の文字から特定の文字までを抽出する方法は、下記ページをご覧ください。
=LEFT(文字列,文字数)
文字列 | このセルの |
文字数 | 左からこの文字数までを抽出してね |
FIND関数は、指定した文字列が何番目にあるのかが分かる関数です。

=FIND(検索文字列,対象,開始位置)
検索文字列 | この文字列は |
対象 | この中の何番目にありますか |
開始位置 | この位置から数えて(省略可) |
【Excel・エクセル】特定の文字より前までを抽出する方法
画像のように、@以前のアカウント部分(ローカル部)を取り出したいとき。
FIND関数で「@」の位置を確認し、その数分LEFT関数で取り出せばOKです。

あ、ただ今回の場合は-1する必要があります。

=LEFT(A2,FIND(“@",A2)-1)で求められるよ。やってみよう。
ステップ1
まずはLEFT関数から書いていきます。
「=LEFT(」まで入力してください。

ステップ2
次にどのセルから取り出したいか。
コレはA2ですね。セルA2をクリックして、「,(カンマ)」です。

ステップ3
次は文字数、ここでFIND関数の出番です。
「FIND(」と入力します。

ステップ4
FIND関数の検索文字列、どの文字まで抽出したいかを決めます。
今回は「@」の一つ前までを抽出したいので、「"@"」と入力します。
そして「,(カンマ)」。


文字列だから「""」で囲むんだね。
ステップ5
次に対象、どのセルから抽出したいかです。
コレはLEFT関数で選んだセルと同じですね。
セルA2をクリックして、カッコを閉じます。

ステップ6
仕上げに「-1」してください。
これで式は完成なので、最後にカッコで閉じましょう。


何で-1するの?

そのままだと、検索した文字(@)まで抽出しちゃうからね。
FIND(“@",A2)の答えは「morino@」なので7ですが、LEFT関数で左から7文字取り出すと、@も含まれちゃいます。
今回は@の前までを取り出したいので、-1したというわけです。
完了!
無事、@より前までの文字を抽出できましたね!

【Excel・エクセル】TEXTBEFORE関数を使う(Excel365専用)
FIND関数とLEFT関数を組み合わせてもできるんですが、Excel365をお使いなら、もっと簡単に特定の文字までの抽出ができます。

TEXTBEFORE関数を使うんよ。
=TEXTBEFORE(text,delimiter
,[instance_num],[match_mode],[match_end],[if_not_found])

何で英語?
text | 文字列 | この文字列(セル)から |
delimiter | 区切り文字 | この文字より前を抽出して |
instance_num | 番号 | 区切り文字が複数ある場合、何番目か 省略したら1 |
match_mode | 検索モード | 0または省略:大文字と小文字を区別する 1:大文字と小文字を区別しない |
match_end | 末尾の扱い | 0または省略:文字列の末尾の区切り文字は無視 1:文字列の末尾の区切り文字も含む |
if_not_found | 既定値 | 区切り文字がない場合、なんて表示するか 省略した場合「#N/A」になる |

なんか難しそう。

最初の2つ以外は省略できるから、安心して。
アドレスの「@」より前の文字列を、TEXTBEFORE関数で抽出してみましょう。
ステップ1
まずは関数名、「=TEXTBEFORE(」と入力します。
「=TE」まで入力すると3番目に候補が出るので、ダブルクリックか下矢印→下矢印→Tabでもいいですよ。

ステップ2
文字を抽出したいセルA2をクリックします。
続けて「,(カンマ)」です。

ステップ3
続けてどの文字より前を抽出したいか。
今回は「@」より前なので「"@"」と入力します。


文字を指定するから、「"」で囲むのを忘れないでね。
完成!
これで式は完成です。
エンターキーを押してオートフィルすれば、無事特定の文字より前を抜き出せました!

文字を抽出する関数はたくさんあるので、使いこなして自由自在に文字列を抽出しまくってください!
それでは、お疲れさまでした!
- 特定の文字までを抽出するなら、LEFT関数とFIND関数を組み合わせる
- =LEFT(セル,FIND(“特定の文字",セル)-1)
- Excel365ならTEXTBEFORE関数が簡単
ディスカッション
コメント一覧
まだ、コメントがありません