RIGHT関数の使い方|右(後ろ)から指定の文字数を抽出

Excel関数

Excel(エクセル)RIGHT関数の使い方|右(後ろ)から指定の文字数を抽出

RIGHT関数はExcelで特定の文字列を抽出する関数の一つで、右側(文字列の後ろ)から指定した数だけの文字を切り出します。ここではRIGHT関数の使い方について、できるだけ分かりやすく図解します。

使用関数:RIGHT

RIGHT(ライト)関数とは?

RIGHT関数はその名の通り、文字を右から取り出します。単独で使われることは少なく、LEFT、FIND、MID、LEN、SUBSTITUTEなど他の関数と組み合わせた応用例の多い関数です。特に、LEFT関数、RIGHT関数とはセットで解説されることが多く、文字列の抽出に使用する関数のグループとしてまとめて覚えることをお勧めします。

関数名文字列の抽出位置引数
LEFT左・先頭から文字列・文字数
MID任意の位置から文字列・開始位置・文字数
RIGHT右・後ろから文字列・文字数

バイト数で文字を抽出するRIGHTBについて

文字列操作の関数にはRIGHTと1文字違いのRIGHTBがありますが、この2つの関数の違いは単位です。Excelの文字単位には「文字数」と「バイト数」があり、RIGHTBはバイト数(半角が1バイト、全角が2バイト)で右から文字を切り出します。RIGHT関数が文字数2で抽出する漢字はRIGHTB関数ではバイト数4で抽出することになります。

RIGHT関数の基本的な使い方

RIGHT関数をダイアログで組み立て、引数を確認してみましょう。

「数式」タブ→「関数ライブラリ」→「文字列操作」からRIGHTをクリックします。
「数式」タブ→「関数ライブラリ」→「文字列操作」→RIGHT

RIGHT関数の書式の構成はこうなります。「文字列(必須)」と「文字数(任意)」です。
RIGHT関数の書式の構成

以下の商品コードからRIGHT関数で製品番号を取り出します。製品番号は商品コードの末尾5文字です。
RIGHT関数で末尾5文字を取り出す商品コード

第一引数「文字列」

文字を切り出す元の文字列を指定します。数値や文字列を直に入力するか、セル参照、または数式を入力します。

この例では最初の商品コードのセルをクリックして指定します。
RIGHT関数の引数「文字列」を指定

第二引数「文字数」

右端(後ろ)から何文字取り出すかを指定します。数値や数式を入力するか、セルを参照します。省略した場合は「1」を指定したと見なされます。

この例では「製品番号」はすべて5文字なので、数値で「5」と入力します。
RIGHT関数の引数「文字数」を指定

数式を下までオートフィルコピーして完了です。右端(後ろ)から5文字までのコードが取得できました。
RIGHT関数の結果

RIGHT関数で文字列化した数値を数値に変換する

RIGHTは文字列操作の関数です。取り出された数値は文字列として表示されます。

例えば、数値の入ったセルを「文字列」に指定し、「文字数」を3と指定して返った結果「789」はセル内で左寄せになっていることから文字列に認定されたことが判ります。
RIGHT関数で取り出した数値は文字列になる

これを計算に使いたいために数値に変換したいというなら、文字列のまま計算して問題ありません。それ以外で数値に変換させる必要がある時は、RIGHT関数の数式ごとVALUE関数にネストする「=VALUE(RIGHT(A2,3))」または、RIGHT関数の数式の末尾に「/1」か「*1」を入力して「=RIGHT(A2,3)/1、=RIGHT(A2,3)*1」数値であるとExcelに認識してもらえば数値に変換されて表示が右寄せになります。
RIGHT関数で取り出して文字列になった数値を数値に変換

RIGHT関数で日付から取り出せる?

「2022/7/14」という日付からLEFT関数で「年」を、MID関数で「月」を、RIGHT関数で「日」を取り出したくなるかもしれませんが、これはNGです。RIGHT関数で文字数2を指定して日を取り出そうとしてもシリアル値の右から2個の数字が文字列で返されるだけです。
RIGHT関数で日付から抽出しようとした結果

日付からの抽出はYEARMONTHDAYの各関数を使いましょう。

RIGHT関数の組み合わせ応用例

RIGHT関数と他の関数を組み合わせた応用例の幾つかを挙げておきます。

FIND関数、LEN関数とRIGHT関数で特定の文字より後ろの文字列を取り出す

下図のメールアドレスからドメイン(@より後ろの部分)を取り出してみましょう。
FIND関数・LEN関数・RIGHT関数でドメインを取り出すメールアドレス

まず、FIND関数で特定の文字(この例では@)の位置を取得します。
FIND関数で特定の文字の位置を取得

LEN関数でメールアドレスの文字数を取得する数式LEN(A2)からFIND関数の数式FIND(“@”,A2)を引き算してRIGHT関数の第二引数「文字数」に入れ子します。
LEN関数からFIND関数を引き算する数式をRIGHT関数の第二引数「文字数」にネスト

数式をオートフィルコピーして完了です。FIND関数、LEN関数とRIGHT関数の組み合わせで特定の文字より後ろの文字列が取り出されました。
FIND関数、LEN関数とRIGHT関数の組み合わせで特定の文字より後ろの文字列を抽出

数式 =RIGHT(A2,LEN(A2)-FIND(“@”,A2))

LEFT関数、COLUMN関数とRIGHT関数で文字列を1文字ずつセルに切り出す

請求書の金額を1セルに1数字切り出して右詰めで入力します。
LEFT関数、COLUMN関数、RIGHT関数で文字列を切り分ける請求書
金額のセルは6桁で、その左端のセル(B5)に数式を入れます。

LEFT関数で数字を切り出すために、RIGHT関数で各セルに割り当てる文字列を作成します。

RIGHT関数の「文字列」に「空白(スペース)+明細の金額」を「“ ”&$B$9」と指定します。スペースの文字列を冒頭に置いて、B9セルの金額と結合演算子&でつなぎ、「 39160」と指定したことになります。
RIGHT関数の文字列に空白(スペース)+明細の金額を指定

RIGHT関数の「文字数」には、セルごとに割り振る文字数をCOLUMN関数で組み立てます。全桁数の「6」にCOLUMN関数で取得したセルの列番号を加算し、そこから再度COLUMN関数で取得したセルの列番号を減算します。
RIGHT関数の「文字数」をCOLUMN関数で構築
ポイントは6に加算するCOLUMN関数の参照セル「B5」を絶対参照にしておくことです。減算する方のCOLUMN関数のセルは次のセルへ数式がコピーされる度に1ずつ戻り値が増えるので、RIGHT関数の「文字数」は1ずつ減っていくことになります。最初のB5セルは文字数6になるので、指定した文字列「 39160」の全部が返り、次のC5セルは文字数5で、スペースを除く金額の数字部分が返ります。
RIGHT関数で取得したセルごとの文字列

RIGHT関数の数式で取得した文字列をLEFT関数の引数「文字列」にネストして、引数「文字数」を省略、左端の1文字が切り出されます。
RIGHT関数の数式で取得した文字列をLEFT関数の引数「文字列」にネスト
数式を右にオートフィルコピーして完了です。LEFT関数、COLUMN関数、RIGHT関数で1セルに1文字ずつ抽出できました。
LEFT関数、COLUMN関数、RIGHT関数で1セルに1文字ずつ抽出

数式 =LEFT(RIGHT(“ ”&$B$9,6+COLUMN($B$5)-COLUMN(B5)))

RIGHT関数とLEFT関数で文字列に区切りの文字を入れる

連続した顧客コードに区切りの文字(この例ではハイフン)を入れて、先頭4文字の分類コードと識別番号9文字を切り分けます。
RIGHT関数とLEFT関数で区切りの文字を入れる顧客コード

LEFT関数で左からの4文字を取り出す数式を組み立てます。
LEFT関数で左からの4文字を取り出す

LEFT関数の数式の後に続けてハイフンを結合演算子&でつなぎます。
LEFT関数の数式の後に続けてハイフンを結合演算子&で結合

RIGHT関数で右からの9文字を取り出す数式を組み立て、結合演算子&の後に入力します。
RIGHT関数で右からの9文字を取り出す

RIGHT関数、LEFT関数で文字列に区切りの文字が入りました。オートフィルコピーして完了です。
RIGHT関数、LEFT関数を組み合わせて文字列に区切りの文字が入った

数式 =LEFT(A2,4)&“-“&RIGHT(A2,9)

結合演算子&でつなぐ代わりにCONCATやTEXTJOIN関数を使っても同じ結果が得られます。

Excelで文字を連結する方法はこちらの記事で詳しく解説していますので、ご参照下さい。

Excelで「文字列を結合する方法」を使い分ける
文字列を結合するには結合演算子または関数を使います。ここではExcelのバージョンによる最適な方法や、結合する文字列の多い少ない、配列同士の連結、区切り文字を挟んだ連結など、Excelで「文字列を結合する」方法を状況別に整理して解説しています

RIGHT関数と他の関数を組み合わせた応用例は以下の記事も参考にして下さい。

FIND・LEFT・LENとRIGHT関数を組み合わせて名前の姓と名を分割

住所録の作成の過程で、印刷時にWordの差し込み印刷と連携するために姓と名を分割させておく手順です。

「氏名」の入力と同時に「姓」「名」を自動で分割表示、更に「フリガナ」も自動表示するよう設定する方法

氏名を入力すると自動で「姓」「名」を分割し、フリガナを表示
手入力を必要最小限にするため関数をフル活用し、氏名入力と同時に「姓」「名」を自動分割。フリガナも自動表示
RIGHT関数の使い方 まとめ
  • RIGHTは文字列の右端から指定した数の文字を抽出する関数です
  • RIGHT関数は全角でも半角でも1とカウントします。全角を2、半角を1と区別してカウントした文字を抽出するならRIGHTBを使います
  • RIGHT関数の必須の引数は抽出元の「文字列」で、抽出する「文字数」の指定は任意です。省略すると文字数「1」を指定したことになります
  • RIGHT関数で数値を取り出すと文字列になります。数値に変換する必要があるならVALUE関数に入れ子するか数式の末尾に/1や*1を入力します
  • LEFT関数、MID関数、RIGHT関数で日付から年月日を切り出すことはできません。YEAR・MONTH・DAYの各関数を使います
  • 特定の文字より後ろの文字列を取り出すにはRIGHT関数とLEN関数、FIND関数を組み合わせます
  • 文字列を1文字ずつセルに切り出すにはLEFT関数、COLUMN関数とRIGHT関数を組み合わせます
  • 文字列に区切りの文字(ハイフンや空白)を入れるにはLEFT関数、結合演算子、RIGHT関数を組み合わせます
タイトルとURLをコピーしました