Introduction
Ver. all 2013 2016 2019 2021 365
エクセルで特定の文字の位置を探すFIND関数を利用して、同じ文字の間部分を抽出する方法です。
決まった文字の位置を探すことができる関数なので、その位置を基準に文字を抜き出すことができます。
同じ文字の間を抜き出してみるにゃ
特定の文字から文字までを抽出する方法
今回は、ホームページのアドレス(URL)のドメイン部分を抜き出してみます。
※ドメインとは、下の赤線部分のホームページの住所となる部分です。
このドメインですが、「/」によって挟まれていることが分かります。
つまり、2番目の「/」の次の文字から、3番目の「/」の前の文字までを抜き出せば良いですね。
ということで、FIND関数でそれぞれの「/」の位置を探して、最後にMID関数で文字を抜き出してみます。
完成の式をいっぺんに説明すると把握しづらくなるので、先頭文字の「/」から3番目の「/」までの位置を順番に探してみましょう。
まず、先頭の「/」です。
結果を表示したいセルを選択して、[関数の挿入]ボタンをクリック。
[関数の分類]を[文字列操作]か[すべて表示]に変更して、「FIND」を選びます。
FIND関数・・・指定した文字列が、指定した文字列(セル)の左から何番目にあるかを返す
=FIND(検索文字列,対象,開始位置[省略可])
- 文字列・・・検索する文字列を指定
- 文字数・・・検索する文字列を含む文字列(セル)を指定
- 開始位置・・・検索を開始する位置を数字で指定(省略した場合は先頭からになる)
今回は下のように引数を設定します。
[検索文字列]には、検索したい文字「/」を入力します。文字を関数の中で使用する場合はダブルクォーテーション「”」で囲む必要があります。
※次の場所をクリックすると、自動で設定されます。
[対象]の場所は、対象となるセルを指定。
[開始位置]は、今回は1文字目からの位置を知りたいので「1」と入力。
※省略しても先頭からになります。
完成する関数は、
=FIND("/",A2,1)
結果は「6」と表示されます。確かに最初の「/」は6文字目にありますね。
下にオートフィル機能を使用してコピーした結果が下の画像。
次に、2番目の「/」ですが、これは今探した最初の「/」から1文字後ろということで、前の式に「+1」するだけで大丈夫。
つまり、下のようになります。
=FIND("/",A2,1)+1
結果ではなく、入力した式を表示したのが下の画像。
その式を下にコピーすると2番目の「/」の位置が表示されます。
では、3番目の「/」です。ここがポイントですね。
同じFIND関数ですが、引数の[開始位置]の場所がポイントになります。
この[開始位置]を2番目の「/」の次の文字から指定すれば、3番目の「/」を探すことになりますね。
つまり、[開始位置]を先ほどの2番目の「/」を探す式、
=FIND("/",A2,1)+1
に、「次の文字から」ということでさらに1プラスした式を入れればOKとなります。
=FIND("/",A2,1)+2
結果は下のようになり、3番目の「/」の位置が分かります。
2番目の「/」と3番目の「/」の位置が分かれば、あとはMID関数を使用して文字を取り出すことができます。
MID関数・・・文字列の指定した位置から、指定した文字数を取り出す関数
=MID(文字列,開始位置,文字数)
- 文字列・・・文字を取り出すセルを指定
- 開始位置・・・左から何文字目を取り出すか指定
- 文字数・・・取り出す文字数を指定
このMID関数で下のように設定します。
- [開始位置]に2番目の「/」の位置に「+1」して次の文字からを指定
- [文字数]に3番目の「/」の位置から2番目の「/」の位置を引いたものに、さらに「-1」して、前の文字までを指定
下の画像がイメージです。
では、やってみます。
結果を表示したいセルを選択して、[関数の挿入]ボタンをクリック。
[関数の分類]を[文字列操作]か[すべて表示]に変更して、「MID」を選びます。
これまでに作成した式を利用して、下のように指定します。
- 開始位置・・・2番目の「/」の位置に「+1」
- 文字数・・・3番目の「/」から2番目の「/」の位置を引いたものに「-1」
です。
これで、下のように必要な文字だけが抜き出されます。
下にコピーして作業終了。
さて、実際使用する場合は余計なセルは使用したくないので、1つの式にまとえた方が良いですね。
今回の場合で言うと、MID関数の引数で、
- [開始位置]・・・2番目の「/」の位置に「+1」 ⇒ FIND(“/”,A2,1)+2
- [文字数]・・・「3番目の「/」の位置を出す関数」-「最初の「/」の位置を出す関数」-2
を入力することになります。
完成する式は下のようになります。
=MID(A2,FIND("/",A2,1)+2,FIND("/",A2,FIND("/",A2,1)+2)-FIND("/",A2,1)-2)
長いですね・・・。
結果は下のように、1つの式で文字を抜き出すことができます。
まとめ
FIND関数の使用例ということで、同じ特定の文字を使用した例を紹介しました。
一度に作成しようとすると、式が長くなり頭がこんがらがってしまいます。
今回のように、最初の文字、次の文字とFIND関数の動きを確認して、最後にそれらの式をMID関数やRIGHT関数、LEFT関数などと組み合わせて利用するのがお勧めです。
関数を入れ子にする知識が必要になるにゃ