FIND関数で右(後ろ)から特定の文字まで検索し抽出する
ここでは、エクセルのFIND関数で「右(後ろ)から特定の文字を検索し抽出する方法」を解説します。
「右から特定の文字を検索する」とはどのようなことかの説明と、右側から検索して特定の文字までを抽出できる数式の紹介です。
1.「右から特定の文字まで検索し抽出する」とは
始めに、「右から特定の文字まで検索し抽出する」とはどのようなことか、例を挙げてみてみます。
セルA1に「a-bb-ccc-dddd」という値が入っており、中には「-」が3つあります。
まず、「右から特定の文字を検索する」とは、「複数ある文字の一番右側の位置を取得する」ということです。
例だと、一番右側の「-」の位置を知るというになります。
次に「抽出する」とは、「検索した文字より右側の文字列を抜き出す」ということです。
例だと、「dddd」を抜き出すということになります。
つまり、「右から特定の文字まで検索し抽出する」とは、「特定の文字が何個あったとしても、一番右側以降の文字列を抽出する」ということなのです。
2.右から特定の文字まで検索し抽出できる数式
次に、数式の形と使ってみた例を見てみます。
2-1.数式の形は
「右から特定の文字まで検索し抽出」できる数式の形は、次の通りです。
入れる引数は「対象」と「検索文字列」で、入れ方もFIND関数の普段の使い方と変わりません。
ちなみに、「対象」には検索対象となる文字列が、「検索文字列」には「検索したい文字列」が入ります。
2-2.例で確認
実際に数式を使ってみた例を見てみましょう。
例の場合、数式は次のようになります。
=RIGHT(A1,LEN(A1)-FIND("●",SUBSTITUTE(A1,"-","●",LEN(A1)-LEN(SUBSTITUTE(A1,"-","")))))
「対象」がA1、「検索文字列」が「"-"」です。
これで、最後の「-」以降の文字列「dddd」が取り出せています。
3.数式利用時の注意点
紹介した数式には、一つ注意点があります。
それは、「『対象』の文字列の中に『●』がないこと」です。
実は、「●」は「●」でなければならない理由はありません。
「対象」の中にない文字や記号であれば、なんでもいいのです。
ただし、「対象の中にない」ことだけは守らないと正しく動きません。
もし、対象の中に「●」がある場合には、紹介した数式の「●」部分を別の記号などに置き換えてください。
4.数式の意味を確認
最後に、数式の意味を確認します。
複数の関数を使い、全体的にちょっと独特なので、なんでこの数式の形になっているのか、分かりづらいと思います。
例において、数式は次の通りでした。
=RIGHT(A1, FIND("●", SUBSTITUTE(A1, "-", "●", LEN(A1) - LEN(SUBSTITUTE(A1, "-", "")))))
この数式の、特に「FIND関数」部分を、エクセルの計算順序に合わせて見ていきます。
(1)「SUBSTITUTE(A1, "-", "")」の部分
この部分は、「検索文字列を空白に変換する」ことをしています。
つまり、この部分の計算結果は、「aaabbbcccddd」となります。
(2)「LEN(SUMSTITUTE())」の部分
この部分は、「『aaabbbccc』の文字数を数える」ことをしています。
つまり、この部分の計算結果は「12」です。
(3)「LEN(A1)-LEN(SUMSTITUTE())」の部分
ここでは、「『-』を空白にしない状態と空白にした状態の文字数の差」を求めています。
つまり、「-」の数を求めており、この部分の計算結果は「3」です。
(4)「SUBSTITUTE(~,LEN(A1)-LEN(SUMSTITUTE()))」の部分
この部分は、「3つ目の『-』を『●』に置き換える」ことをしています。
ここで出てくる「3」は、先ほど求めた「-」の数です。
つまり、ここの計算結果は「aaa-bbb-ccc●ddd」となります。
(5)全部
ここでは、「●の位置」を求めています。
つまり、計算結果は「12」です。
これで、一番最後の「-」の位置が出ました。
後は、RIGHT関数で右側からこの位置まで文字列を取り出しています。
以上、参考になれば幸いです。
【口コミ・評判のいいExcel本の紹介】
FIND関数に関連したページは、次の通りです。。
- FIND関数 使いこなすためのポイントはこちら
- ◎基本的な使い方
- ◎複数の文字をOR条件で検索する方法
- ◎複数ある文字の2、3番目の位置を返す方法
- ◎右から検索して位置を抽出する方法
- ◎先頭から指定文字の一つ前までを抜き出す方法