Excel FIND関数で右(後ろ)からN文字目を取得する方法

2022年10月5日

FIND関数FINDB関数は指定した文字がどこにあるかを

開始位置(左・前)からの位置で取得します。

逆に終了位置(右・後)からの位置を取得する関数やオプション、

文字を反転させる関数もないので複数の関数を組み合わせる必要があります。

この記事ではFIND関数で紹介しますが、FINDB関数でも同様です。

方法

Yahoo!天気の東京都のURLの最後の/を取得する例で考えます。

https://weather.yahoo.co.jp/weather/jp/13/?day=1

LAMBDA関数を利用する方法

Microsoft365など新しい機能が反映されているExcelの場合、

後述する従来の方法と違い、テキストを逆さにする数式が1セルの数式で完結します。

そのためそれにFIND関数をかけるだけで完了します。

逆さにする部分はCONCATMAKEARRAYLENLAMBDAMIDを利用します。

(赤字部分はセル参照やテキストに変更)

=LEN(対象)-FIND("/",CONCAT(MAKEARRAY(1,LEN(対象),LAMBDA(row,col,MID(対象,LEN(対象)-col+1,1)))))+1

従来の方法

取得する数式

右からの位置の検索結果

SUBSTITUTE関数LEN関数を併用で実現できます。(文字色ありは可変な部分)

=FIND(処理用文字,SUBSTITUTE(対象,検索文字列,処理用文字,LEN(対象)-LEN(SUBSTITUTE(対象,検索文字列,""))-(右からN文字目-1)))

可変部分は今回の例ではこのように設定します。

可変部分
処理用文字
対象https://weather.yahoo.co.jp/weather/jp/13/?day=1
検索文字列/

処理用文字はなんでも構いませんが、

対象中になく処理用文字とも異なる文字である必要があります。

この結果とLEFT関数を組み合わせれば最後の/までのURLが取得されます。

https://weather.yahoo.co.jp/weather/jp/13/

右からN文字目の数字を変えるとより左の位置で検索します。

例えば3にすると右から3番目となりLEFT関数の結果がこうなります。

https://weather.yahoo.co.jp/weather/
右から3文字目の対象を取得

数式の詳細説明

どのような動きをしているかを順を追って説明します。

結果さえ取れれば良いという方は読み飛ばしてくださって構いません。

まずLEN関数対象の文字数を取得します。

セル項目名数式
H3対象の文字数=LEN(対象)
LEN関数で対象全体の文字数を取得

SUBSTITUTE関数で対象から検索文字列を全削除します。

今回の例ではこのような結果となります。

セル項目名数式
I3対象から検索文字列を除外した文字列=SUBSTITUTE(対象,検索文字列,"")
https:weather.yahoo.co.jpweatherjp13?day=1
SUBSTITUTE関数で対象から検索文字列を全削除

LEN関数対象から検索文字列を除外した文字数を取得します。

セル項目名数式
J3対象から検索文字列を除外した文字数=LEN(対象から検索文字列を除外した文字列)
LEN関数で検索文字列を削除した対象文字数を取得

先ほどの二つの文字数の差を算出し、検索文字列を求めます。

検索文字列の数=対象の文字数-対象から検索文字列を除外した文字数
セル項目名数式
K3検索文字列の数対象の文字数-対象から検索文字列を除外した文字数
N文字目の対象の数を算出

それを右からN文字目から1を引いた数を引きます。

セル項目名数式
L3N文字目の検索文字列検索文字列の数-(右からN文字目-1)

()は計算上不要なのですが見た目上、

一まとまりにするために入れているだけです。

N文字目の対象を算出

SUBSTITUTE関数でN文字目の対象を処理用文字に置換します。

セル項目名数式
M3N文字目の検索文字列処理用文字に置換した対象SUBSTITUTE(対象,検索文字列,処理用文字,N文字目の検索文字列)
SUBSTITUTEでN文字目を検索文字列を処理用文字に置換

置換した文字列から処理用文字の位置を、

FIND関数で出せば右からN文字目の検索となります。

セル項目名数式
N3右からN文字目検索文字列の位置=FIND(処理用文字,右からN文字目の検索文字列処理用文字に置換した対象)
検索結果

処理用文字対象中に別途含まれている場合、

FIND関数がそちらに反応する場合があるので

処理用文字は対象に存在しない文字である必要があります。

マクロ・VBA

数式を組み合わせるより、少ない手間と簡潔な記述で実現可能です。

Excelを効率的に習得したい方へ

当サイトの情報を電子書籍用に読み易く整理したコンテンツを

買い切り950円またはKindle Unlimited (読み放題) で提供中です。

Word-A4サイズ:1,400ページの情報量で

(実際のページ数はデバイスで変わります)

基本的な使い方、関数の解説(140種類)、

頻出テクニックと実用例(109種類)、

XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピルなど便利な新機能を紹介。

体系的に学びたい方は是非ご検討ください。

アップデートなどの更新事項があれば随時反映しています。

なお購入後に最新版をダウンロードするには

Amazonへの問い合わせが必要です。

関連記事

FIND関数の使い方・活用方法の記事一覧