MID関数は文字列の左端を起点にして開始位置を指定する関数ですが、場合によっては右端を起点にして開始位置を指定したいことがあります。そのような場合は、LEN関数と組み合わせることで思ったとおりの処理をすることが可能です。本記事では、MID関数で元の文字列の右端を起点にして開始位置を指定する方法を解説します。
数式の一例
MID関数で右端から開始位置を指定する数式の一例は次のとおりです。
=MID(A1,LEN(A1)-3,2)
上記の例では、セルA1の文字列の右から4番目の位置から2文字を抽出します。
セルA1の値が「123456789」であれば、計算結果として「67」が返ってきます。
セルA1の値が「123456」であれば、計算結果として「34」が返ってきます。
処理の仕組み
LEN関数は文字列の長さ(文字数)を返す関数です。文字列の長さを返すということは、見方を変えると文字列の最後の位置を表していることにもなります。
たとえば、「123456789」の文字列の長さは9文字であり、文字列の最後の位置は9番目です。「123456」であれば文字列の長さは6文字であり、文字列の最後の位置は6番目です。
このように、LEN関数を使うことで、文字列の最後の位置を自動で特定できます。
LEN関数で計算した文字列の最後の位置から特定の数を引き算すると、文字列の右端を起点にして位置を指定するのと同じ状態になります。LEN関数の計算結果から引き算をするということは、「文字列の最後から〇個手前の文字は何番目か?」という計算をしているのと同じことなのです。
このLEN関数の性質を利用して、MID関数の第2引数の「開始位置」に ネスト することで、右端を起点とした開始位置の指定をしています。
まとめ
MID関数はLEN関数を ネスト することで、左端からだけでなく、右端からも開始位置の指定ができます。抽出したい元の文字列の作りに応じて使い分けてみてください。
コメント