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

抽出

もりの

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

やまの

それなら、LEFT関数とFIND関数を組み合わせるといいんよ。

今回のポイント
  • 特定の文字までを抽出するなら、LEFT関数とFIND関数を組み合わせる
  • =LEFT(セル,FIND(“特定の文字",セル)-1)
  • Excel365ならTEXTBEFORE関数が簡単

スポンサーリンク

【Excel・エクセル】LEFT関数とFIND関数をおさらい

画像のように、特定の文字までを抽出する場合、LEFT関数とFIND関数を組み合わせます。

@までを抽出した画像
@までを抽出する
やまの

まずは2つの関数をおさらいしてみよう。

LEFT関数は、文字列の左から任意の文字数までを抽出する関数です。

LEFT関数の例
LEFT関数の例

特定の文字以降を抽出する方法、特定の文字から特定の文字までを抽出する方法は、下記ページをご覧ください。

LEFT関数の書き方

=LEFT(文字列,文字数)

文字列このセルの
文字数左からこの文字数までを抽出してね

FIND関数は、指定した文字列が何番目にあるのかが分かる関数です。

FIND関数の例
文字列の位置が分かる
FIND関数の書き方

=FIND(検索文字列,対象,開始位置)

検索文字列この文字列は
対象この中の何番目にありますか
開始位置この位置から数えて(省略可)

【Excel・エクセル】特定の文字より前までを抽出する方法

画像のように、@以前のアカウント部分(ローカル部)を取り出したいとき。

FIND関数で「@」の位置を確認し、その数分LEFT関数で取り出せばOKです。

@までを抽出した画像
@までを抽出する

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

やまの

=LEFT(A2,FIND(“@",A2)-1)で求められるよ。やってみよう。

ステップ1

まずはLEFT関数から書いていきます。

「=LEFT(」まで入力してください。

「=LEFT(」まで入力した画像
まずは関数名

ステップ2

次にどのセルから取り出したいか。

コレはA2ですね。セルA2をクリックして、「,(カンマ)」です。

取り出したいセルをクリックした画像
取り出したいセルをクリック

ステップ3

次は文字数、ここでFIND関数の出番です。

「FIND(」と入力します。

「FIND(」と入力した画像
FIND関数、君に決めた

ステップ4

FIND関数の検索文字列、どの文字まで抽出したいかを決めます。

今回は「@」の一つ前までを抽出したいので、「"@"」と入力します。

そして「,(カンマ)」

検索文字列を指定した画像
どの文字まで抽出したいか
もりの

文字列だから「""」で囲むんだね。

ステップ5

次に対象、どのセルから抽出したいかです。

コレはLEFT関数で選んだセルと同じですね。

セルA2をクリックして、カッコを閉じます

対象を指定した画像
どのセルから探したいか

ステップ6

仕上げに「-1」してください。

これで式は完成なので、最後にカッコで閉じましょう。

-1した画像
最後に-1する
もりの

何で-1するの?

やまの

そのままだと、検索した文字(@)まで抽出しちゃうからね。

FIND(“@",A2)の答えは「morino@」なので7ですが、LEFT関数で左から7文字取り出すと、@も含まれちゃいます。

今回は@の前までを取り出したいので、-1したというわけです。

完了!

無事、@より前までの文字を抽出できましたね!

アドレスのアカウント部分だけ抽出した画像
アドレスのアカウント部分だけ抽出できた

【Excel・エクセル】TEXTBEFORE関数を使う(Excel365専用)

FIND関数とLEFT関数を組み合わせてもできるんですが、Excel365をお使いなら、もっと簡単に特定の文字までの抽出ができます。

やまの

TEXTBEFORE関数を使うんよ。

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でもいいですよ。

TEXTBEFOREを選ぶ画像
TEXTBEFOREって長いよね

ステップ2

文字を抽出したいセルA2をクリックします。

続けて「,(カンマ)」です。

抽出したいセルをクリックした画像
抽出したいセルをクリック

ステップ3

続けてどの文字より前を抽出したいか。

今回は「@」より前なので「"@"」と入力します。

区切り文字は含まれない
やまの

文字を指定するから、「"」で囲むのを忘れないでね。

完成!

これで式は完成です。

エンターキーを押してオートフィルすれば、無事特定の文字より前を抜き出せました!

TEXTBEFORE関数で抽出できた画像
TEXTBEFORE関数で抽出できた

文字を抽出する関数はたくさんあるので、使いこなして自由自在に文字列を抽出しまくってください!
それでは、お疲れさまでした!

今回のおさらい
  • 特定の文字までを抽出するなら、LEFT関数とFIND関数を組み合わせる
  • =LEFT(セル,FIND(“特定の文字",セル)-1)
  • Excel365ならTEXTBEFORE関数が簡単

数式・関数,Excel抽出

Posted by morino