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関数で製品番号を取り出します。製品番号は商品コードの末尾5文字です。
第一引数「文字列」
文字を切り出す元の文字列を指定します。数値や文字列を直に入力するか、セル参照、または数式を入力します。
この例では最初の商品コードのセルをクリックして指定します。
第二引数「文字数」
右端(後ろ)から何文字取り出すかを指定します。数値や数式を入力するか、セルを参照します。省略した場合は「1」を指定したと見なされます。
この例では「製品番号」はすべて5文字なので、数値で「5」と入力します。
数式を下までオートフィルコピーして完了です。右端(後ろ)から5文字までのコードが取得できました。 RIGHTは文字列操作の関数です。取り出された数値は文字列として表示されます。 例えば、数値の入ったセルを「文字列」に指定し、「文字数」を3と指定して返った結果「789」はセル内で左寄せになっていることから文字列に認定されたことが判ります。 これを計算に使いたいために数値に変換したいというなら、文字列のまま計算して問題ありません。それ以外で数値に変換させる必要がある時は、RIGHT関数の数式ごとVALUE関数にネストする「=VALUE(RIGHT(A2,3))」または、RIGHT関数の数式の末尾に「/1」か「*1」を入力して「=RIGHT(A2,3)/1、=RIGHT(A2,3)*1」数値であるとExcelに認識してもらえば数値に変換されて表示が右寄せになります。 「2022/7/14」という日付からLEFT関数で「年」を、MID関数で「月」を、RIGHT関数で「日」を取り出したくなるかもしれませんが、これはNGです。RIGHT関数で文字数2を指定して日を取り出そうとしてもシリアル値の右から2個の数字が文字列で返されるだけです。 RIGHT関数と他の関数を組み合わせた応用例の幾つかを挙げておきます。 下図のメールアドレスからドメイン(@より後ろの部分)を取り出してみましょう。 まず、FIND関数で特定の文字(この例では@)の位置を取得します。 LEN関数でメールアドレスの文字数を取得する数式LEN(A2)からFIND関数の数式FIND(“@”,A2)を引き算してRIGHT関数の第二引数「文字数」に入れ子します。 数式をオートフィルコピーして完了です。FIND関数、LEN関数とRIGHT関数の組み合わせで特定の文字より後ろの文字列が取り出されました。 数式 =RIGHT(A2,LEN(A2)-FIND(“@”,A2)) 請求書の金額を1セルに1数字切り出して右詰めで入力します。 LEFT関数で数字を切り出すために、RIGHT関数で各セルに割り当てる文字列を作成します。 RIGHT関数の「文字列」に「空白(スペース)+明細の金額」を「“ ”&$B$9」と指定します。スペースの文字列を冒頭に置いて、B9セルの金額と結合演算子&でつなぎ、「 39160」と指定したことになります。 RIGHT関数の「文字数」には、セルごとに割り振る文字数をCOLUMN関数で組み立てます。全桁数の「6」にCOLUMN関数で取得したセルの列番号を加算し、そこから再度COLUMN関数で取得したセルの列番号を減算します。 RIGHT関数の数式で取得した文字列をLEFT関数の引数「文字列」にネストして、引数「文字数」を省略、左端の1文字が切り出されます。 数式 =LEFT(RIGHT(“ ”&$B$9,6+COLUMN($B$5)-COLUMN(B5))) 連続した顧客コードに区切りの文字(この例ではハイフン)を入れて、先頭4文字の分類コードと識別番号9文字を切り分けます。 LEFT関数で左からの4文字を取り出す数式を組み立てます。 LEFT関数の数式の後に続けてハイフンを結合演算子&でつなぎます。 RIGHT関数で右からの9文字を取り出す数式を組み立て、結合演算子&の後に入力します。 RIGHT関数、LEFT関数で文字列に区切りの文字が入りました。オートフィルコピーして完了です。 数式 =LEFT(A2,4)&“-“&RIGHT(A2,9) 結合演算子&でつなぐ代わりにCONCATやTEXTJOIN関数を使っても同じ結果が得られます。 Excelで文字を連結する方法はこちらの記事で詳しく解説していますので、ご参照下さい。 RIGHT関数と他の関数を組み合わせた応用例は以下の記事も参考にして下さい。 住所録の作成の過程で、印刷時にWordの差し込み印刷と連携するために姓と名を分割させておく手順です。 「氏名」の入力と同時に「姓」「名」を自動で分割表示、更に「フリガナ」も自動表示するよう設定する方法
RIGHT関数で文字列化した数値を数値に変換する
RIGHT関数で日付から取り出せる?
RIGHT関数の組み合わせ応用例
FIND関数、LEN関数とRIGHT関数で特定の文字より後ろの文字列を取り出す
LEFT関数、COLUMN関数とRIGHT関数で文字列を1文字ずつセルに切り出す
金額のセルは6桁で、その左端のセル(B5)に数式を入れます。
ポイントは6に加算するCOLUMN関数の参照セル「B5」を絶対参照にしておくことです。減算する方のCOLUMN関数のセルは次のセルへ数式がコピーされる度に1ずつ戻り値が増えるので、RIGHT関数の「文字数」は1ずつ減っていくことになります。最初のB5セルは文字数6になるので、指定した文字列「 39160」の全部が返り、次のC5セルは文字数5で、スペースを除く金額の数字部分が返ります。
数式を右にオートフィルコピーして完了です。LEFT関数、COLUMN関数、RIGHT関数で1セルに1文字ずつ抽出できました。
RIGHT関数とLEFT関数で文字列に区切りの文字を入れる
FIND・LEFT・LENと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関数を組み合わせます