この記事では、エクセルで文字列の右端から特定の位置の文字を抽出する方法を関数とマクロを使って解説します。
以下の4つがポイントです。
・MID関数とLEN関数で右から3文字目を抽出する方法
・RIGHT関数とMID関数を組み合わせて右からn文字目を抽出する関数
・InputBoxでn文字目を指定して右からn文字目を抽出するマクロ
それでは詳しく見ていきます。
エクセルで右から何文字目だけ抽出(2文字目)する方法【MID関数とLEN関数】
以下のサンプルを使って、右から2文字目だけの抽出方法を見ていきましょう。
A列に元データを入力し、B2セルに以下の数式を入力します。
=MID(A2,LEN(A2)-1,1)
LEN関数は文字列の文字数を返します。
LEN(A2)-1で右から2文字目の位置を指定し、MID関数でその位置から1文字分を取り出しています。
ENTERで処理を確定し、B2セルからオートフィルでB列全体に数式をコピーすれば完了です。
MID関数とLEN関数の組み合わせは、文字列の右端からn文字目を抽出したい場合に応用できる便利なテクニックですね(^^)/
エクセルで右から何文字目だけ抽出(3文字目)する方法【MID関数とLEN関数】
右から3文字目の抽出も、MID関数とLEN関数を使えば簡単に実現できます。
A列の元データに対し、B2セルに以下の数式を入力します。
=MID(A2,LEN(A2)-2,1)
LEN(A2)-2で右から3番目の位置を指定し、MID関数でその位置の1文字を取り出しています。
ENTERで処理を確定させ、B2セルからオートフィルでB列全体に数式をコピーします。
文字列の右端からn文字目を抽出するには、MID関数の第2引数をLEN(A2)-n+1とすればOKですね!
エクセルで右から何文字目だけ抽出する方法【関数をマクロ化】
先の関数をマクロ化して、InputBoxでn文字目を指定できるようにしてみましょう。
VisualBasicエディタを開き、以下のコードを入力します。
Sub ExtractNthCharacterFromRight()
Dim n As Long
n = InputBox("右から何文字目を抽出しますか?")
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Range("B2").Formula = "=MID(RIGHT(A2," & n & ")," & n & ",1)"
Range("B2").AutoFill Destination:=Range("B2:B" & lastRow)
End Sub
このマクロは以下のような動作をします(^^)/
1. InputBoxでnに抽出する文字の位置を入力
2. A列の最終行を取得
3. B2セルに数式を入力
4. B2セルの数式をB列全体にオートフィル
nに3を指定すれば右から3文字目、5を指定すれば右から5文字目を抽出します。
A列のデータが変わっても、マクロを実行するだけで瞬時にB列の結果が更新されますね!
まとめ エクセルで右からn文字目を抽出する方法
本記事ではエクセルの関数とマクロを使って、文字列の右から特定の位置の文字を抽出する方法を解説しました。
文字列操作のバリエーションは多岐にわたります。
本記事を参考に、エクセルの関数とマクロをマスターして業務の効率化につなげてください。