大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excelで、文字列を右から(後ろから)検索する方法について、ご紹介します。結論から言うと、文字列を右から検索するExcel関数は、ありません。関数を組み合わせて、右から検索することになります。やり方としては、検索したい文字を特定の文字に置換して、置換した文字を検索する、という流れです。

はじめに

この記事では、文字列を右から(後ろから)検索する方法について、ご紹介します。

結論から言うと、右から検索するExcel関数は、ないです。残念。

Excel関数を組み合わせて、右から検索することになります。

右から検索する流れとして、

  • 検索したい文字を特定の文字に置換する
  • 置換した文字を検索する

というやり方になります。

数式が長くなってしまうので、作業セルに分割して入力しましょう。

確認や変更が簡単になります。

では、文字列を右から(後ろから)検索する方法について、解説していきます。

この記事で紹介すること

  • 文字列を右から(後ろから)検索する方法

目次から見たい項目へ移動すると便利ですよ。

目次

Excelで文字列を右から(後ろから)検索

Excelで、文字列を右から(後ろから)検索してみます。

やりたいこと

やりたいことは、右から特定の文字の位置検索する、ということです。

例えば、右から「-」の位置を検索するという感じです。

右から位置を検索したい

右から特定の文字の位置を検索する

一番最後の「-」以降の文字を抽出したい場合に、使えます。

ただ、右から検索するのは、結構大変です。

右から検索する関数は、次のようになります。

完成版(ムズッ)

右から特定の文字列を検索してみます。

右から「-」の位置を検索する数式は、こんな感じになります。

=FIND("■",SUBSTITUTE(A2,"-","■",LEN(A2)-LEN(SUBSTITUTE(A2,"-",""))))

セルに入力してみます。

右から「-」を検索した結果

右から「-」を検索した結果

結果は、「9」文字目となりました。

右から検索ができています。

ただ、数式が長い。

関数を分解して、解説していきます。

右から検索する数式を分解して解説

右から検索する数式を分解して、具体的に解説します。

文字列を右から(後ろから)検索する流れ

文字列を右から(後ろから)検索するというより、一番最後の「-」を任意の文字に置き換えて、任意の文字を検索する、という感じです。

流れとしては、

  • 検索したい一番最後の文字を、任意の文字に置換
  • 置換した任意の文字を検索

という流れです。

例えば、「ab-c-123-45」を右から「-」の位置を検索したい場合だと、次のような流れで検索します。

=SUBSTITUTE(A2,"-","■",3)
=FIND("■",A4)

セルに入力すると、こんな感じです。

右から検索する流れ

右から検索する流れ

検索したい文字「-」を、任意の文字「■」に置き換えます。

次に、置き換えた文字「■」を検索する、という感じです。

ここで、わからないのは、最後の「-」が何番目かです。

最後の「-」が何番目かを調べる

最後「-」が何番目かがわからない

今回の場合は、検索したい文字「-」の最後は、3番目です。

この「3番目」をどうにか取得すれば、右から特定の文字の位置を取得することができます。

検索したい文字の数を取得(LENとSUBSTITUTE)

検索したい文字の最後が何番目かを、取得するには、次のようにします。

検索したい文字の最後の順番を調べるイメージ

検索したい文字の最後が何番目かを取得するイメージ

「文字列の長さ」-「検索する文字を除いた文字列の長さ」のように、引き算すると、「3文字」と計算できます。

「3文字」となるので、「3番目」の「-」を置換すればいいことなります。

検索する文字の最後の番号を取得

数式にすると、次のようになります。

=LEN(A2)
=LEN(SUBSTITUTE(A2,"-",""))
=A4-A6

では、セルに入力してみます。

検索したい文字の最後の順番を取得した結果

結果は、「3」個ある、となりました。

数式をまとめる

数式をまとめると、次のようになります。

=LEN(A2)-LEN(SUBSTITUTE(A2,"-",""))

では、セルに入力してみます。

関数をまとめて検索したい文字の最後の順番を取得した結果

結果は、先ほどと同じで「3」個ある、となりました。

つまり、「3」番目の「-」を特定の文字「■」に置換すれば、右から検索ができます。

検索したい文字を別の文字に置換(SUBSTITUTE)

検索したい文字を、別の文字に置換してみます。

使う関数は、「SUBSTITUTE関数」です。

数式は、次のようになります。

=LEN(A2)-LEN(SUBSTITUTE(A2,"-",""))
=SUBSTITUTE(A2,"-","■",A4)

では、セルに入力してみます。

検索したい文字を別の文字に置換

検索する文字を任意の文字に置換した結果

結果は、「ab-c-123■45」となりました。

ここまでくれば、あとは、この「■」の位置を検索すると、右から「-」を検索したことになります。

置換した文字を検索(FIND)

置換した文字「■」を検索するには、「FIND関数」を使います。

数式は、次のようになります。

=LEN(A2)-LEN(SUBSTITUTE(A2,"-",""))
=SUBSTITUTE(A2,"-","■",A4)
=FIND("■",A6)

では、セルに入力してみます。

置換した文字を検索

置換した文字「■」を検索した結果

結果は、「9」文字目となりました。

これで、右から「-」の位置を検索することができました。

Excel関数をまとめる

FIND、SUBSTITUTE、LENの関数をまとめると、最初に書いたとおり、次のようになります。

=FIND("■",SUBSTITUTE(A2,"-","■",LEN(A2)-LEN(SUBSTITUTE(A2,"-",""))))

セルに入力してみます。

右から検索(わかったけど長い)

右から文字列を検索した結果

結果は、「9」文字となります。

右から検索ができています。

ただ、これでは、あとから確認したときに、変更するのが大変なので、作業セルや作業列を使った方がいいです。

作業セルを使いましょう

数式が長くなる場合は、作業セルを使いましょう。

作業列を使って右から検索

作業列を使って、右方向に作業用のセルを使って、右から文字列を検索してみます。

数式は、次のようになります。

=LEN(A6)-LEN(SUBSTITUTE(A6,"-",""))
=SUBSTITUTE(A6,"-","■",B6)
=FIND("■",C6)

セルに入力してみます。

作業列を使って右から検索

作業列を使って右から文字列を検索した結果

結果は、「9」文字目となりました。

数式を分割して入力すると、何をしているのかがわかりやすいです。

数式が長くなる場合は、分割して入力しましょう。

おわりに

この記事では、文字列を右から(後ろから)検索する方法について、ご紹介しました。

結論から言うと、右から検索するExcel関数は、ないです。残念。

Excel関数を組み合わせて、右から検索することになります。

右から検索する流れとして、

  • 検索したい文字を特定の文字に置換する
  • 置換した文字を検索する

というやり方になります。

数式が長くなってしまうので、作業セルに分割して入力しましょう。

確認や変更が簡単になります。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す