• Excel
  • 関数
  • 営業事務

FIND関数とは?覚えておくと事務処理が段違いにラクになるプチテクニックをご紹介!

2022.01.13

FIND関数とは?覚えておくと事務処理が段違いにラクになるプチテクニックをご紹介!

目次

業務を行う中でExcel(エクセル)を使用して、集計やデータ分析をすることが多いと思います。「住所から県名を取り出したい」「姓名を分けたデータにしたい」など、あるデータから必要な情報を一気に抽出したいと思うことはありませんか?

そんな時に使えるのが『FIND関数』です。 今回はFIND関数について、例題を交えながら丁寧にご紹介します。

EXJ_みずき

監修:みずき さん
EXCEL女子の研修講師をしています。Excel研修では「覚える」だけではなく「理解する」ことで、自身の力としてExcelスキルを身につけられる研修を実施しています。研修をするたびにExcelが大好きになり、Excelってすごい!と実感しています。Excelの他には写真が好きで食べ物や風景を撮影しています!

FIND関数とは?

FIND関数とは"「FIND=見つけ出す"という名前が表現している通り、指定された文字列が、左から何番目にあるのかを探すことができる関数です。

例えば、「神奈川県横浜市青葉区」という住所で「県」という文字は何文字目にあるでしょうか?
4番目ですね。

文字数が少なかったり、データが少なかったりする場合は、そのまま数えた方が早いかもしれません。しかし、文字数が多かったり、膨大なデータを扱ったりするのは大変です。

そこで役に立つのがFIND関数です。他の関数と組み合わせて使うことで、特定の文字を抽出することも可能です。

順番に使い方を見ていきましょう。

<基本編>使い方

FIND関数の数式

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

指定した文字が何文字目にあるのかを求めることができます。 
  • 検索文字列…検索したい特定の文字を指定
  • 対象…[検索文字列]が含まれる文字列が入力されたセル、または文字列を指定
  • 開始位置…文字の検索を始める位置を指定 ※先頭から探す場合は省略が可能


これから3つの具体例をもとに、基本的な使い方を確認してみましょう。

具体例1:住所から「県」が何文字目にあるかを探す

こちらは住所一覧です。

A列の住所から「県」という文字が何番目にあるかB列に表示していきます。
この場合、そこまで大きくないデータのため、手入力したくなりますが、1つずつ数えていくのは非効率です。

そこでFIND関数を使用します。実際に数式を入力してみましょう。

FIND関数_基本編01


(1)表示させたいセルを選択する

FIND関数_基本編02

(2)数式バーに「=FIND("県",A2,1)」と入力する

FIND関数_基本編03

<補足>それぞれの引数について

  • 検索文字列
    数式内で文字を指定する際は、前後を「"(ダブルクォーテーション)」で囲みます。(探したい文字を指定するので、今回は「"県"」と入力します。)
  • 対象
    どのセルの中で探したい文字を探すかを指定するので、今回は「A2です
  • 開始位置
    何文字目から探せばいいのかを指定します。基本的には最初から探すので、「1」とします。
    ※開始位置に関しては省略が可能で、省略した場合は1を指定したとみなされます。(今回は省略せずに進めていきます。)

(3)Enterキーを押す
FIND関数_基本編04

(4)セルを選択したとき、右下に表示されるフィルハンドル(■)をダブルクリックし、表の下まで結果を表示させる

FIND関数_基本編05

FIND関数_基本編06

これですべての住所の「県」の位置がわかりました。

この後の応用編で、取り出した文字の位置を使用した活用例をご紹介します!

▼関数挿入ボタンを使用した数式の入力に関しては、以下のブログをご覧ください。
参考:事務スタッフ必見!データ入力はVLOOKUP関数をうまく活用しよう!

具体例2:空白の位置を調べる

具体例1では、「県」という文字列を指定しましたが、「空白」を指定することも可能です。

=FIND(" ",A2,1) :全角スペース

検索文字列に「" "」(全角スペース)を指定しました。3番目に「空白」があると結果が出ました。

FIND関数_基本編07

ここで注意していただきたいのは、FIND関数は全角スペース、半角スペースの区別をしているということです。例題の氏名は全角スペースで区切られています。試しに半角スペースを指定してみましょう。

=FIND(" ",A2,1):半角スペース

検索文字列に「" "」(半角スペース)を指定しました。「#VALUE!」と出てきてしまいます。

FIND関数_基本編08

姓と名を区切るスペースがある場合、全角か半角か、どちらかに統一する必要があります。

姓と名の空白を調べることで、名字だけ表示することができるようになります。応用編の『FIND関数×LEFT関数』をご確認ください。

◎補足 
以下の関数を使用することで、全角半角を統一したり、置換したりすることができます。
  • ASC関数:全角文字を半角文字に変換
  • JIS関数:半角文字を全角文字に変換
  • SUBSTITUTE関数:文字列中の指定した文字を新しい文字で置き換える

具体例3:2番目の「市」がどの位置にあるかを調べる

同じセル内に検索したい特定の文字が2つ以上ある場合はどのように探すのでしょうか。

=FIND("市",A2,1)

市名を取り出すために「市」が何番目か探している場合、今までと同じように数式を設定すると、「1」となってしまいます。

FIND関数_基本編09

=FIND("市",A2,FIND("市",A2,1)+1)

ここでは1番目の「市」の次にある文字を指定するため、開始位置の引数にFIND("市",A2,1)+1を入力します。ここまで見てきて、「指定の文字列が何番目にあるかがわかったところで何に使えるの?」と思うかもしれません。FIND関数は他の関数を組み合わせることで、文字列の中から希望の文字列を取り出すこともでき、非常に便利な関数です。

FIND関数_基本編10

↑ 記事TOP

<応用編>使い方

ここでは他の関数との組み合わせを見ていきましょう。

FIND関数×LEFT関数

まず、LEFT関数とは文字列の先頭から文字数を指定して取り出す関数です。

=LEFT(文字列,文字数)

文字列の左端から指定した文字数分の文字列を取り出すことができます。 
  • 文字列…文字列か文字列が入力されたセルを指定
  • 文字数…取り出す文字数を数値で指定するか、セルで指定

 =LEFT(A2,3)

セル【A2】の先頭から3文字分の「長崎県」を取り出すことができました。

しかし、県名は3文字だけではありません。文字数を3と固定してしまうと、LEFT関数だけでは難しそうです。そこでFIND関数と組み合わせていきます。

具体例をもとに実際の数式を確認してみましょう。

LEFT関数×FIND関数_01

具体例:住所から県名を取り出す

基本編の例題1と同じシートを使用していきます。C列に県名列を追加し、この列に県名を取り出します。

LEFT関数×FIND関数_02

(1)表示させたいセルを選択する

(2)数式バーに「=LEFT(A2,FIND("県",A2,1))」と入力し、Enterキーを押す
「県」という文字まで取り出す関数としてLEFT関数を使用し、文字数の引数に基本編で作成したFIND関数の数式を挿入します。

LEFT関数×FIND関数_03
「長崎県」と表示されました。

(3)フィルハンドルをダブルクリックし、すべてに結果を表示させる

LEFT関数×FIND関数_04

LEFT関数と組み合わせることで、文字列の先頭から、FIND関数で指定された文字までを取り出すことができました。この組み合わせはよく使うので、覚えておくと便利です。

補足

日本には、県以外に「東京都、大阪府、京都府、北海道」があります。「県」がついていない場合はどのようにすればいいのでしょうか?

まず都道府県の文字数ルールを考えてみましょう。

東京都、大阪府、京都府、北海道は3文字、県の場合は神奈川県、和歌山県、鹿児島県が4文字の県です。

そこで、IF関数とMID関数を使い,4文字目が「県」ならば、4文字取り出し、それ以外は3文字取り出す式にします。

まず、IF関数、について説明します。IF関数とは論理式が真の時に真の場合を返し、理論式が偽の時に偽の場合を返す関数です。

=IF(論理式,真の場合,偽の場合)

論理式が真の時に真の場合を返し、理論式が偽の時に偽の場合を返すことができます。
  • 論理式…条件を指定
  • 真の場合…条件に合っていた場合に表示したいものを指定
  • 偽の場合…条件に合わなかった場合に表示したいものを指定

 

=IF(A2="長崎県","〇","×")

IF関数

長崎県なら〇、長崎県ではなかったら×を表示させました。

次に、MID関数とは、文字列の指定した位置から何文字かを指定して取り出す関数です。

=MID(文字列,開始位置,文字数)

文字列の指定した位置から指定した文字数分の文字列を取り出すことができます。 
  • 文字列…文字列か文字列が入力されたセルを指定
  • 開始位置…取り出す位置を数値で指定するか、セルを指定
  • 文字数…取り出す文字数を数値で指定するか、セルを指定 ※最大30文字

 

 =MID(A2,4,4)

セル【A2】の4文字目から4文字取り出すことができました。

MID関数01

では、以下の住所一覧から都道府県名を取り出してみましょう。
IF×LEFT01

(1)表示させたいセルを選択する

(2)数式バーに「=IF(MID(A2,4,1)="県",LEFT(A2,4),LEFT(A2,3))」と入力し、Enterキーを押す
この数式は、セル【A2】の1番左から4番目が「県」だったら(MID(A2,4,1)="県")、セル【A2】の左から4文字取り出し(LEFT(A2,4))、4文字目か「県」でなければセル【A2】の左から文字取り出す(LEFT(A2,3))という式です。「北海道」と表示されました。

IF×LEFT02

(3)フィルハンドルをダブルクリックし、表内に数式をコピーする

全ての都道府県を取り出すことができました。

IF×LEFT03

↑ 記事TOP

FIND関数×MID関数×LEN関数

取り出すデータが必ずしも先頭からというわけではないですよね。

そこで、MID関数とLEN関数を組み合わせていきます。3つの関数を組み合わせるのは難しいように感じますが、例題を進めると理解が深まると思います。一緒に見ていきましょう。

まず、LEN関数について説明します。LEN関数とは、文字列の文字数を調べる関数です。

文字列の文字数を調べる

=LEN(文字列)

文字列の文字数を調べることができます。
  • 文字列…文字数を調べる文字列が入力されているセルか、文字列そのものを指定
    ※空白を含む文字列の場合、空白も1文字として数える

セル【A2】の文字数は全部で「12」あると調べることができました。では、関数を組み合わせた例題を進めていきましょう。

LEN関数

例題:住所から住所から県名以外(大阪府、東京都、北海道、京都府)を取り出す

先ほどと同じシートを使用します。
D列を追加し、この列に県以外を取り出していきます。

FIND関数×MID関数×LEN関数_01

<操作方法>

(1)表示させたいセルを選択する
(2)数式バーに「=MID(A2, FIND("県",A2,1)+1,LEN(A2)-LEN(C2))」と入力し、Enterキーを押す
「県」の次の文字からすべてを取り出す関数としてMID関数を使用します。
県名の文字数が異なるため、取り出すためのMID関数の開始位置に可変性を持たせるため、FIND関数、取り出す文字数にも可変性を持たせるためにLEN関数を使用します。「佐世保市吉井町板樋」と表示されました。
FIND関数×MID関数×LEN関数_02

それぞれの引数についてみていきましょう。

◎補足

  • 取り出す元データを指定しているので今回はA2
  • 開始位置:FIND("県",A2,1)+1
    「県」の次の文字を開始位置にしたいため、FIND関数で指定した数式+1です
  • 文字数:LEN(A2)-LEN(C2)
    住所の文字数から県名の文字数を引いたものが県以外の文字数です。

(3)フィルハンドルをダブルクリックし、表内に数式をコピーする

FIND関数×MID関数×LEN関数_03

色々な組み合わせを使ってみて、少しずつ慣れていきましょう。

◎補足
例題ではFIND関数との組み合わせで紹介しましたが、RIGHT関数とLEN関数を組み合わせて使用しても簡単に県以外を取り出すことができます。

まず、RIGHT関数について説明します。

=RIGHT(文字列,文字数)

文字列の右側から文字数を指定して取り出すことができます。 
  • 文字列…文字列か文字列が入力されたセルを指定
  • 文字数…取り出す文字数を数値で指定するか、セルで指定

= RIGHT(A2,9)

セル【A2】の右側から9文字分の「佐世保市吉井町板樋」を取り出すことができました。RIGHT関数とMID関数を使用して、県以外を取り出してみましょう。


RIGHT関数

<操作方法>

(1)表示させたいセルを選択する
(2)数式バーに「=RIGHT(A2,LEN(A2)-LEN(C2))」と入力し、Enterキーを押す
この数式は、住所から県名の文字数を引いた文字数分(LEN(A2)-LEN(C2))をセル【A2】の右側から表示させるという式です。「佐世保市吉井町板樋」と表示されました。

RIGHT×LEN_01

(3)フィルハンドルをダブルクリックし、表内に数式をコピーする

RIGHT×LEN_02

SEARCH関数との違い

FIND関数とよく似ている関数として、SEARCH関数があります。SEARCH関数もFIND関数と同様、特定の文字の位置を調べる関数です。SEARCH関数の数式を確認してみましょう。

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

指定された文字列を他の文字列の中で検索し、その文字列が最初に現れる位置を左端から数え、その番号を返すことができます。
  • 検索文字列…検索したい特定の文字を指定
  • 対象…[検索文字列]が含まれる文字列が入力されたセル、または文字列を指定
  • 開始位置…文字の検索を始める位置を指定 ※先頭から探す場合は省略が可能

引数はFIND関数と全く同じです。SEARCH関数でも「県」の位置を取り出してみましょう。FIND関数と同じ結果になりました。

SEARCH関数

では、どこが違うのでしょうか。

まず1つ目の違いは、大文字と小文字を区別するかどうかです。
FIND関数は大文字と小文字は区別され、SEARCH関数は大文字と小文字が区別されません。

2つ目の違いは、検索文字列にワイルドカード(「*」・「?」)が使用できるかどうかです。
FIND関数ではワイルドカードを使用できませんが、SEARH関数にはワイルドカードが使用できます。

ワイルドカード…文字列を検索するときに、文字の代わりに指定する記号のことです。*(アスタリスク)は任意の複数の文字を表し、?(疑問符)は任意の1文字を表します。以下のブログでも紹介していますので、併せて見てみてください。

 

参考:いまさら聞けない?COUNTIF関数を活用した効率的なデータ分析について解説!

まとめると下表の通りです。

  FIND関数 SEARCH関数
大文字と小文字の区別 される されない
ワイルドカード 使用不可 使用可能

扱っているデータが日本語、数字のみであれば、どちらを使用しても問題はありません。明確に使い分けを覚える必要はありませんが、もしエラーなどで立ち止まることがあれば、思い出せるようにしておくといいかもしれません。

まとめ

今回は文字列の位置を調べるFIND関数を中心に紹介しました。FIND関数単体で使うだけではなく、他の関数と組み合わせることで可能性が広がる優れた関数です。ぜひ習得して業務の効率を上げてゆきましょう。

当社では、『Microsoft認定トレーナー』資格を持つEXCEL女子による「Excel研修」を提供しております。書籍化するなど注目いただいている研修です。

社員教育に時間を割けない、Excelスキルの底上げをしたいなどお悩みでしたら、ぜひお気軽にお問い合わせください。

Excel研修サービス案内資料

Excel研修サービス案内

実際に現場で活躍するEXCEL女子が考えたカリキュラムをもとに、学習するExcel研修のご紹介です。
資料ダウンロード
PAGE TOP