FIND関数で任意の文字列が対象データの何文字目にあるかカウントする方法

文字列関数を使用していると、文字数の指定を数字でしてあげる必要がある関数があります。

たとえば、

  • LEFT関数
  • RIGHT関数
  • MID関数

などなど。

上記の関数を各数式の中で文字数を入力しても良いですが、条件に応じて可変性を持たせた方が効率的な場面も多いはず。

そんなときに有用なのはFIND関数

今回はFIND関数で任意の文字列が対象データの何文字目にあるかカウントする方法について解説していきます。

FIND関数の基本構成

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

検索文字列

検索をしたい文字列を指定します。

数式内に直接文字列を指定したい場合は””[ダブルクォーテーション]で文字列を囲いましょう。

対象

[検索文字列]が含まれているセルを指定します。

セル範囲(たとえば”A1:A2″など)は指定しても正しくカウントできませんので、1つのセル(たとえば”A1″のみなど)を選択しましょう。

開始位置

省略可能です。(省略した場合[対象]の1文字目から検索対象となる)

検索を開始する位置を数字で指定します。

ここで指定する文字数は半角・全角の区別はありません。

使用例

FIND関数①

今回はB4セルに入力されている住所のうち、”区”が何文字目にあるのか、C4セルに返したいとします。

その場合、C4セルのFIND関数で指定する[検索文字列]は”区”、[対象]はB4セル、[開始位置]は1文字目から検索をかけたいので省略します。

そうすると、C4セルにはB4セルの中で”区”が7文字目にあることを示す”7″の数字が返ります。

[検索文字列]はセル参照も可能!

FIND関数②

先述の説明では、[検索文字列]を数式内に直接入力しましたが、セル参照を行なうことも可能です。

上図ではF9セルに”区”と入力しているため、FIND関数の結果は先述の例といっしょの結果となります。

[検索文字列]で指定したセル内に複数の二字以上の文字列を入力した場合、一字目が[検索文字列]扱いになります。
ちなみに[対象]内にない文字列になっている場合、「#VALUE!」のエラーになります。

[対象]の[開始位置]を指定することも可能!

[開始位置]を指定することで、[対象]の中の検索範囲をせばめることも可能です。

使いどころとしては、[検索文字列]が[対象]の中に複数あって、[対象]の後半の方で検索したい場合に使用すると良いでしょう。

ちなみに、[開始位置]を指定するしない関わらず、返る値は[対象]の1文字目から起算された結果となります。

[開始位置]から何文字目かを知りたい場合は、[対象]を分割するなどのひと手間が必要になります。

たとえば、先述の住所の中で”-“が何文字目かをカウントしたいとします。

その場合、住所の文字列では9文字目と11文字目に2箇所”-“があるため、最初の9文字目を返してしまいます。

FIND関数④

なので、たとえば[開始位置]を”10″とすると、下図の通り10文字目から”-“を検索することになります。

FIND関数③

結果としては、11文字目に”-“があるため、FIND関数の結果として”11″の数字が返ります。

その他の使用例

今後追加予定。

まとめ

FIND関数は使いどころが難しいため、Excel中・上級者向けの関数です。

しかし、覚えておくと、LEFT関数・RIGHT関数・MID関数などを可変性を持たせたかたちで使用することができるため、いろいろな形式の文字列を一定の条件で自動的に処理することもできるようになります。

今後別記事でご紹介していきたいと思いますので、参考にして勉強してみてくださいね(・∀・)

この記事が気に入ったら
いいね ! しよう

無料メルマガはじめました!(特典あり)

メールアドレスを登録すればブログではお伝えできない情報を無料で受信できます。
今なら特典として、サンプルファイルを無料でプレゼント中!
もっとエクセルをスキルアップしたい方は、ぜひご登録くださいm(__)m

ご案内

おすすめ記事