RIGHT分類:文字列操作 2009.02.06
RIGHTは「文字列操作」に分類される関数で、引数に指定した文字列の右端から、指定した文字数を取り出します。
「名前を取り出す」「市区町村を取り出す」といった用途が考えられます。
RIGHTの機能と構成
機能:文字列の右端から指定した文字数を返す。
構成:=RIGHT(文字列,文字数)
引数
文字列にはRIGHT関数で取り出す対象文字列を指定します。
文字数には取り出したい文字数を数値で指定します。省略した場合は「1」を指定したとみなされます。文字列より多くを指定した場合は、文字列全てを取り出します。
全角・半角関係なく、そして空白や句読点も1字として扱われます。
引数指定の例
セル[A1]の文字列の右から「3」文字を取り出す:=RIGHT(A1,3)
[Data]と名前の定義を行ったセルの文字列右端から「3」文字を取り出す:=RIGHT(Data,3)
数式を挿入したセルと同じ行のセルの文字列右端から「3」文字取り出す※:=RIGHT($A$1:$A$10,3)
※「文字列」に行又は列、どちらか一方の1次元セル範囲を指定出来ます。RIGHTの対象となるのは、セル範囲が行方向なら同じ行、列方向なら同じ列のセルになります。2次元セル範囲を指定すると#VALUE!のエラーになります。
RIGHT関数の応用
FIND関数との応用(1)
RIGHT関数は、文字を検索するFIND関数、文字数を返すLEN関数と組み合わせることで、特定の文字を基準に、文字列を取り出せます。→FIND関数 →LEN関数
=RIGHT(対象文字列,LEN(対象文字列)-FIND(検索文字列,対象文字列,開始位置))
次の例は、名字と名前の間の" "(スペース)を基に、名前を取り出しています。
1.LEN関数で文字列の文字数を求める。
2.FIND関数で" "(スペース)の位置を求め、LEN関数で求めた文字数からその結果を引く。
3.「2.」の結果をRIGHT関数の文字数に指定し、名前を取り出す。
FIND関数との応用(2)
次は市区町村を取り出す例です。ここではFIND・LEN関数に加え、エラー判断を行うISERROR関数、分岐を行うIF関数も使用します。
セル[D3]に対象文字列(住所)がある場合:
=IF(ISERROR(FIND("県",D4)),RIGHT(D4,LEN(D4)-3),RIGHT(D4,LEN(D4)-FIND("県",D4)))
【数式の説明】
1.IF関数の第1引数に指定したFIND関数が、セル[D3]文字列から「県」を探す。
2.「県」が見つからなかった場合は、IF関数の真の条件へ進む。
LEN関数で文字列の文字数を求め、そこから「3※」を引き、残りの文字数を右端から取り出す。
(※北海道、東京都、京都府、大阪府は全て3文字のため)
3.「県」が見つかった場合は、IF関数の偽の条件へ進む。
LEN関数で対象の文字数を求め、そこからFIND関数で得られた「県」の位置を引き、
RIGHT関数の文字数に指定し、それ以後の文字列を取り出す。
RIGHT関数の類似関数
RIGHT関数の類似関数にRIGHTB関数があります。RIGHT関数の第2引数は「文字数」であったのに対し、RIGHTB関数の第2引数は「バイト数」になります(半角文字は1バイト、全角文字は2バイト)。使用の機会は多くないと思いますが覚えておくと良いでしょう。