指定の文字が何文字目かを調べる(FIND)
文字列の中から指定した文字が何文字目にあるかを調べます。FIND関数は文字数で調べるため、半角文字も全角文字も1文字として数えます。また半角文字の大文字と小文字は別の文字として検索されます。
=FIND(検索文字, 文字列, 開始位置)
1番目の引数に検索したい文字を指定し、2文字目に検索対象の文字列を指定します。また3番目の文字に検索を開始する文字位置を指定します。文字位置は左端の文字が1番目で文字数で指定します。
検索したい文字と検索対象の文字列には文字の他に数値が指定できます。文字の場合はダブルクオーテーションで囲い、数字の場合はそのまま記述して下さい。
また文字が見つからない場合は「#VALUE!」が値として帰ってきます。
例えば次のような記述となります。
=FIND("県", "愛知県名古屋市", 1)
この場合、検索対象の先頭から"県"と言う文字を検索します。結果は3となります。
では実際に試して見ます。
1.元となるExcelを用意する
下記のようなExcelシートを用意します。
メールアドレスの一覧です。「@」という文字が含まれる場所を調べてみます。
2.結果を表示するセルを選択
結果を表示するセルを選択します。
結果を表示するセルは「C2」です。
3.関数の設定
挿入する関数を選択します。メニューの「挿入」から「関数」を選択します。
「関数の検索」で「find」を入力し、「関数名」で「FIND」が選択されていることを確認してから「OK」ボタンをクリックします。
「検索文字列」に検索したい文字又は数値を入力します。入力する場合はダブルクオーテーションを記述しなくても自動的に付与してくれます。
「対象」に検索対象となる値が含まれるセルを入力します。
「開始位置」に何文字目から検索するかを入力します。
最後に「OKボタンをクリックして下さい。
4.結果の表示
指定したセルに含まれる文字列の中から、指定した文字が見つかった位置を文字数で表示されます。
また、セルに直接次のように入力しても結構です。
=FIND("@",B2,1)
また他のセルにも同様に適用してみると下記のような結果となります。(1つのセルに含まれる関数や計算式を他のセルに適用する方法は『セルに含まれる計算式を他のセルにコピーする』を参照して下さい)。
またFIND関数はLEFT関数などと組み合わせて、特定の文字が含まれる位置までを取り出すような用途として利用されます。(LEFT関数については『指定した文字数分だけ左から文字を取り出す(LEFT)』を参照して下さい)。
セルD3に次のように入力して下さい。
=LEFT(B2,FIND("@",B2,1)-1)
この場合、「FIND("@",B2,1)-1」の部分でB2セルの中で「@」が出てくる位置を調べてさらに1を引いています。つまり文字列の先頭から「@」が出てくる前までの文字数を調べています。そしてLEFT関数で文字列の左から「@」の前までの文字を抜き出します。
また他のセルにも同様に適用してみると下記のような結果となります。
このように、取り出す文字数が決まっていなくてもFIND関数を使うことでセル毎に求めることができます。
( Written by Tatsuo Ikura )