いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Excel)右からn文字目を抽出する方法

 Excelで、文字列の右から(後ろから)n文字目だけを抽出する方法についてです。
 基本的な関数の組み合わせで実現できます。

手順

 次の画像では、B列に対象となる文字列が、C列には数値n(右からn文字目のn)が記録されています。
 そこでD3セルに次のような式を入力してフィルコピーし、それぞれの文字列の右から(後ろから)n文字目だけを抽出しています。
 nが文字列の文字数より大きいとエラーとなります。

 D3セル(下方にフィルコピー)

=MID(B3,LEN(B3)+1-C3,1)

 MID関数を使って文字列から1文字を抽出するという式ですが、第2引数(抽出開始位置)を「LEN(B3)+1-C3」としています。
 これは文字列の長さ(○文字)に1を足してからnを引くというもので、これで「右からn文字目」が「左から何文字目」にあたるのかを算出しています。



 次の画像は別の関数を使った例です。
 ただしnが文字列の文字数より大きい場合は空文字列を返すようにしています。 

 D3セル(下方にフィルコピー)

=IF(C3>LEN(B3),"",LEFT(RIGHT(B3,C3)))

 「=LEFT(RIGHT(B3,C3))」つまり右からn文字を抽出してその最初の1文字を抽出する……で済めば簡単なのですが、nが文字の長さより大きいときに最初の1文字が返ってしまう(RIGHT関数が文字列全体を返すため)ので、その対応が必要となります。そこまで考慮する必要がない場合は「=LEFT(RIGHT(B3,C3)」で済ませる方が簡単です。