エクセル初心者
エクセルでFIND関数を使って右側から文字を検索したいんだけど、そんなことできる?
左側からしか検索できないのかな?
エクセルでFIND関数を使うと、普通は左側から検索がスタートするようになっているね。
でも、ほかの関数をうまく組み合わせれば右側からも文字を抜き出すことができるよ!
Dr.オフィス
エクセルでは通常、文字の入力をはじめ多くの動作は左側から始まるようになっています。
指定した文字を検索するにはFIND関数を使いますが、そのまま使うと左側からしか検索することができません。
文字列の終わりとなる右側から検索をかけたい場合は、ほかの関数とうまく組み合わせて数式を組み立てる必要があります。
この記事を読めば、エクセルで右側から文字を検索することができるようになります。
効率よく作業が進められるように詳しい方法を一緒に学んでいきましょう。
- 検索対象の文字列を削除する(SUBSTITUTE関数)
- 検索対象の文字数を求める(LEN関数)
- 削除する前と削除した後の差を求める(LEN関数)
- 最後の文字を記号に置き換える(SUBSTITUTE関数)
- 置き換えた記号の位置を求める(FIND関数)
- 文字列を右側から抽出する(RIGHT関数)
事務職歴10年以上の私が、エクセルで右側から検索する方法について詳しく解説するよ!
Dr.オフィス
エクセルで右側から検索というとかなり難しいのではないか?と思われるかもしれません。
でも、これは関数の組み合わせ方さえ理解できてしまえば、意外と楽に実現できてしまいます。
この記事を読んで、これからの作業に役立ててもらえたらと思います。
そして本記事は下記の動画でも解説しているので、ぜひ合わせてご覧ください。
FIND関数の詳しい使い方については、こちら≫FIND関数の使い方を解説!の記事で解説していますので参考にしてみてください。
※本記事は『OS:Windows11』画像は『Excelのバージョン:Microsoft365』を使用しています。
目次
FIND関数で右側から文字を検索する方法
FIND関数を使って右側から文字を検索する方法を見ていきましょう。
関数を組み合わせる
FIND関数はそのまま使うと、左側からしか検索することができません。
そのため、右側から検索をかける場合にはほかの関数を組み合わせて数式を作っていく必要があります。
上の図のような文字列から、一番最後の部分を検索・抽出したい場合を考えてみます。
検索には文字列を区切っている記号「‐」の位置が重要になってきます。
それを踏まえると、今回使う計算式は以下のようになります。
=RIGHT(A1,LEN(A1)-FIND(“!”,SUBSTITUTE(A1,”-“,”!”,LEN(A1)-LEN(SUBSTITUTE(A1,”-“,””)))))
4種類の関数を組み合わせているため、数式が長くて少しわかりづらいかもしれませんね。
一見複雑に見えますが、数式の右から順に分解してみると意味が分かるでしょう。
数式の詳しい内容
上記で紹介した数式の各部分がどのような意味を持っているのか、1つずつ解説していきます。
- STEP
検索対象の文字列を削除する(SUBSTITUTE関数)
SUBSTITUTE関数は、文字をほかの文字に置換する関数です。
=SUBSTITUTE(A1,”-“,””)
この式は、A1セルの中から「-」を「空欄」に置き換えるという意味です。
「excel-doctor-find-right」から「‐」がなくなるので、計算結果は「exceldoctorfindright」となります。
空欄に置き換える=その記号を文字列から削除する
ということなんだね!
Dr.オフィス
SUBSTITUTE関数の詳しい使い方については、こちら≫SUBSTITUTE関数を使って特定の文字を別の文字にする方法!の記事で解説していますので参考にしてみてください。
- STEP
検索対象の文字数を求める(LEN関数)
LEN関数は文字数をカウントする関数です。
=LEN(SUBSTITUTE(A1,”-“,””))
この式は、SUBSTITUTE関数で置換した空欄を除いた文字数がいくつなのか求めるという意味です。
「-」を除いた「exceldoctorfindright」の文字数を求める式なので、計算結果は「20」です。
LEN関数の詳しい使い方については、こちら≫LEN関数は簡単に文字の数を表示できる優れものの記事で解説していますので参考にしてみてください。
- STEP
削除する前と削除した後の差を求める(LEN関数)
記号の数を求めるために、LEN関数同士を引き算します。
=LEN(A1)-LEN(SUBSTITUTE(A1,”-“,””))
A1セルの文字数から空欄を除いた文字数を引くという意味の式です。
こうすることで記号「‐」の数を求めることができます。
「excel-doctor-find-right(23文字)」ー「exceldoctorfindright(20文字)」なので、記号の数は3文字ということになります。
- STEP
一番最後の記号を別の記号に置き換える(SUBSTITUTE関数)
「右から検索する=最後の記号よりも右側を検索」なので、検索の基準とするために最後の記号を変換します。
SUBSTITUTE関数で、文字列の一番最後の記号を任意のものに置き換えます。
=SUBSTITUTE(A1,”-“,”!”,LEN(A1)-LEN(SUBSTITUTE(A1,”-“,””)))
上の式は、3つ目の記号「‐」を「!」に置き換えるという意味になります。
一番最後の記号は3つ目なので、計算結果は「excel-doctor-find!right」です。
- STEP
置き換えた記号の位置を求める(FIND関数)
FIND関数を使って、先ほど置き換えた「!」の位置を求めます。
FIND(“!”,SUBSTITUTE(A1,”-“,”!”,LEN(A1)-LEN(SUBSTITUTE(A1,”-“,””))))
上の式は、置き換えた「!」は左から何文字目なのかを求めるという意味です。
「excel-doctor-find!right」の「!」は左から数えて18文字目です。
- STEP
文字列を右から抽出する(RIGHT関数)
最後は、RIGHT関数を使って右から文字列を抜き出していきます。
=RIGHT(A1,LEN(A1)-FIND(“!”,SUBSTITUTE(A1,”-“,”!”,LEN(A1)-LEN(SUBSTITUTE(A1,”-“,””)))))
LEN関数で全体の文字数を求め、そこから「!」までの文字数を引き算します。
24-18=6なので、「!」は右から6文字目。
RIGHT関数で右から6文字目よりも後を抜き出します。
「excel-doctor-find!right」の6文字目より右側ということなので、最終的な計算結果は「right」になります。
文字数の差を求めることで記号の位置を割り出し、そこを基準として右側から文字を検索することができたね。
Dr.オフィス
FIND関数で右側からの文字検索に関するQ&A
Q
例の通りの数式で検索をかけても「#VALUE!」エラーとなってしまう。
なぜ?
A
置き換えに使用した記号と同じものが、元から文字列の中に存在していませんか?
既存の記号とかぶっていると数式が正常に動作しません。
必ず文字列の中に存在しない記号を使用するようにしてください。
Q
メールアドレスのドメイン部分だけを抽出したい。
簡単にできる方法はある?
A
=RIGHT(対象,LEN(対象)-FIND(“@”,対象))
の式で求めることができます。
FIND関数と他の関数を組み合わせれば検索がもっと便利に
今回は、エクセルで文字を右側から検索する方法について解説しました。
右側から検索するためには、FIND関数に複数の関数を組み合わせて数式を作る必要がありました。
文頭ではなく末尾から文字を抜き出したい時もあるので、なかなか重宝するのではないでしょうか。
最後に、右側から検索する方法についておさらいしておきましょう。
- 検索対象の文字列を削除する(SUBSTITUTE関数)
- 検索対象の文字数を求める(LEN関数)
- 削除する前と削除した後の差を求める(LEN関数)
- 最後の文字を記号に置き換える(SUBSTITUTE関数)
- 置き換えた記号の位置を求める(FIND関数)
- 文字列を右側から抽出する(RIGHT関数)
エクセルで右側から検索する方法は、結構出番の多いものではないかと思います。
数式は少し複雑ですが、順序さえ間違えなければとても便利に使えるものです。
長い文字列の右から文字を抜き出したい!という時にはぜひ役立ててください。
FIND関数の使い方を解説ついて紹介した記事もありますので、こちらもぜひ参考にしてみてください。