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完全マスター: 関数・テクニック・新機能を網羅した決定版ガイド

本書は、Excelの基礎から応用まで、包括的に学べるガイドブックです。当サイトの豊富な情報を、電子書籍向けに最適化し、読みやすく再構成しました。

【本書の特徴】

  • 情報量:Word-A4サイズ換算で1,400ページ相当
  • 基本操作から高度なテクニックまで、段階的に学習可能
  • 140種類の関数を詳細に解説
  • 109種類の実用的なテクニックと具体例を紹介
  • 最新機能(XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピル等)を徹底解説

【対象読者】

  • Excel初心者からプロフェッショナルまで
  • 体系的にExcelスキルを向上させたい方
  • 業務効率化を目指すビジネスパーソン
  • データ分析や可視化のスキルを磨きたい方

【本書の強み】

  • 実務に即した例題と解説
  • 視覚的な図表やスクリーンショットで理解を促進
  • 最新のExcelバージョンに対応した内容
  • 著者の長年の経験に基づく、実践的なTipsを多数収録

【更新とサポート】

  • 常に最新の情報を反映するため、定期的に内容を更新
  • 最新版の入手方法:Amazonカスタマーサポートへお問い合わせください

【入手方法】

  • 買い切り:950円
  • Kindle Unlimited:読み放題プランで利用可能

Excelマスターを目指す方、業務効率を劇的に向上させたい方に、自信を持っておすすめできる一冊です。この1冊で、Excelの可能性を最大限に引き出す力が身につきます。

関連記事

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