Introduction
Ver. all 2013 2016 2019 2021 365
エクセルで文字を扱う際に便利なFIND関数の説明です。
決まった文字の位置を探すことができる関数なので、その位置を基準に文字を抜き出すことができます。
FIND関数・・・指定した文字列が、指定した文字列(セル)の左から何番目にあるかを返す
=FIND(検索文字列,対象,開始位置[省略可])
- 文字列・・・検索する文字列を指定
- 文字数・・・検索する文字列を含む文字列(セル)を指定
- 開始位置・・・検索を開始する位置を数字で指定(省略した場合は先頭からになる)
見つける=FIND という事で、覚えやすい関数ですね。
文字列操作が必要な事務職などでは覚えておきたい関数です。
特定の文字を探してくれるにゃ
文字の位置を調べるFIND関数
最初に、簡単にFIND関数がどういうものか説明します。
下の住所から、「区」の文字が何文字目にあるか知りたかったとします。
そんな時は、結果を表示したいセルを選択して[関数の挿入]ボタンをクリック。
[関数の分類]を[文字列操作]か[すべて表示]に変更して、「FIND」を選びます。
FIND関数・・・指定した文字列が、指定した文字列(セル)の左から何番目にあるかを返す
=FIND(検索文字列,対象,開始位置[省略可])
- 文字列・・・検索する文字列を指定
- 文字数・・・検索する文字列を含む文字列(セル)を指定
- 開始位置・・・検索を開始する位置を数字で指定(省略した場合は先頭からになる)
今回の場合は下のように引数を設定します。
[検索文字列]には、検索したい文字を入力します。文字を関数の中で使用する場合はダブルクォーテーション「”」で囲む必要があります。
※次の場所をクリックすると、自動で設定されます。
[対象]の場所は、対象となるセルを指定。
[開始位置]は、今回は1文字目からの位置を知りたいので「1」と入力。
※省略しても先頭からになります。
完成する関数は、
=FIND("区",A1,1)
[OK]を押して、式を下にコピーした結果が下の画像です。
それぞれ「区」の位置が左から何番目にあるか表示してくれました。
このように、文字の位置を探すことができるのがFIND関数なのですが、文字の位置を知るためだけに使用する機会はあまり無いでしょう。
実際に業務で使用する場合は、他の関数と組み合わせて文字列を削除したり抽出する場合に使用します。
その実例を続けて紹介します。
特定の文字から後ろを削除(特定の文字までを抜き出す)する方法
特定の文字から後ろを削除したい場合は、特定の文字から前を抽出してしまいましょう。
例えば、下の住所から「区」より後ろのデータを削除したい場合は、
言い換えると、区までのデータを抜き出せば良いという事になります。
左からの文字を抜き出すには、「LEFT関数」を使用します。
LEFT関数・・・文字列の先頭(左)から指定された数の文字を返す
=LEFT(文字列,文字数[省略可])
- 文字列・・・取り出す文字を含むセルを指定
- 文字数・・・取り出す文字数を指定
この関数の[文字数]の場所でFIND関数を使用して、「区」までの文字数を指定すれば、その場所までの文字を抜き出すことができます。
では、やってみましょう。
結果を表示したいセルを選択して、[関数の挿入]ボタンをクリック。
[関数の分類]を[文字列操作]か[すべて表示]に変更して、「LEFT」を選びます。
LEFT関数の[文字列]の場所には、対象となるセルを選択します。
次に[文字数]の場所をクリックして、この場所にFIND関数を使用します。
[文字数]の場所をクリックしてから、左上の[名前ボックス]の右側にある「v」を押しましょう。
ネスト(追加)する関数の一覧が表示されるので「FIND」の場所をクリックします。
※一覧に無い場合は、一番下にある[その他の関数]から選びましょう。
新たにFIND関数の引数入力画面が表示されるので、下のように「区」が何文字目にあるか調べるように設定します。
[OK]を押すと、左から「区」までのデータが抽出されます。
後は、オートフィル機能で下にコピーすれば良いですね。
このように、他の関数と組み合わせて使用する場合が多い関数です。
特定の文字から前を削除する(特定の文字から後ろを抜き出す)方法
特定の文字から後ろを抜き出すのは、少し面倒です。
使用する関数が1つ増えて3つ使用します。
- FIND関数
- RIGHT関数
- LEN関数
「RIGHT関数」は先ほどのLEFT関数と使い方は同じで、右側から文字を取り出す関数です。
「LEN」関数は、文字列全体の文字数を数えることができます。
この2つと「FIND」関数を組み合わせれば、
「全体の文字数から、区切りとなる文字数を引き算した数だけ右側から文字を取り出す」
ことができます。
言葉で説明すると分かり難いですね。
まず、「RIGHT関数」ですが、データの右側からの文字を抜きだす関数です。
RIGHT関数・・・文字列の最後(右)から指定された数の文字を返す
=RIGHT(文字列,文字数[省略可])
- 文字列・・・取り出す文字を含むセルを指定
- 文字数・・・取り出す文字数を指定
その引数入力画面が下の画像です。
最初のセルは、データの場所を指定するだけで、次の[文字数]の場所で、右側から抜き出す文字数を指定します。
その文字数ですが、下のデータから市町村を取り出したい場合は、「区」より後ろを取り出せば良いことになります。
その場合、下のように「LEN関数」で出した全体の文字数から、「区」までの文字数を「FIND関数」で数えて引き算すると、求める文字数を導くことができますね。
その部分を「RIGNT」関数に入力したのが下の画像です。
全体の文字数を返してくれるLEN関数は、指定したセルの文字数を数える単純な関数です。
LEN関数・・・文字列の文字数を返す
=LEN(文字列)
- 文字列・・・文字数を調べるセルを指定
完成する関数は下のようになります。
=RIGHT(A1,LEN(A1)-FIND("区",A1,1))
結果を下にコピーすると、下画像のように、市町村名だけが取り出せます。
まとめ
LEFT関数やRIGHT関数と組み合わせて使用する事の多い関数です。
そうなると、複数の関数を入れ子で使用する「ネスト」の知識が必要になります。
必要な方は下のリンク先を参考にしてください。
左側を抜き出す例として、今回は「区」をFIND関数の対象にしましたが、「市」「区」「町」「村」のように複数の文字を対象にして抽出したい場合は関数が長くなります。
IFERROR関数を組み合わせて、下のようになります。
=LEFT(A1,IFERROR(FIND("市",A1,1),IFERROR(FIND("区",A1,1),IFERROR(FIND("町",A1,1),IFERROR(FIND("村",A1,1),"")))))
参考にしてください。
関数を入れ子にする知識が必要になるにゃ