• 作成日 : 2025年8月25日

RIGHT関数の使い方 – エクセルで文字列の右側から文字を抽出する方法

RIGHT関数は、文字列の右側(末尾)から指定した文字数を抽出するエクセルの文字列操作関数です。電話番号の下4桁の抽出、ファイル拡張子の取得、商品コードの分類記号の取り出しなど、データ処理の様々な場面で活用されています。

本記事では、RIGHT関数の基本的な使い方から実務での応用例、LEFT関数やMID関数との使い分け、FIND関数やLEN関数との効果的な組み合わせ方、そしてよくあるエラーとその解決方法まで、初心者にも分かりやすく解説します。

RIGHT関数の使い方

RIGHT関数とは

RIGHT関数は、指定した文字列の右端から任意の文字数を取り出す関数です。データの末尾に規則的なパターンがある場合、その部分だけを抽出したいときに威力を発揮します。たとえば、「東京都港区赤坂1-2-3」という住所から「1-2-3」という番地部分だけを取り出したり、「20240315_売上報告.xlsx」というファイル名から拡張子「.xlsx」を抽出したりする際に使用します。

この関数は、文字列を右から左に向かって数え、指定した文字数分を返します。全角文字も半角文字も1文字として扱われるため、日本語のデータ処理でも安心して使用できます。

基本構文

RIGHT関数の構文は非常にシンプルです。

=RIGHT(文字列, [文字数])

各引数について詳しく説明します。

文字列:抽出元となるテキストを指定します。セル参照、文字列の直接入力、他の関数の結果など、様々な形式で指定可能です。

文字数:右端から抽出する文字数を指定します。省略した場合は1が指定されたものとして扱われます。0以上の整数を指定する必要があります。

基本的な使用例

実際にRIGHT関数を使用してみましょう。最も基本的な例から始めます。

=RIGHT(“エクセル関数”, 2)  // 結果:”関数”

=RIGHT(“ABCDEFG”, 3)      // 結果:”EFG”

セル参照を使用する場合:

A1セルに「株式会社山田商事」が入力されている場合、

=RIGHT(A1, 2)  // 結果:”商事”

文字数を省略した場合:

=RIGHT(“12345”)  // 結果:”5″(最後の1文字)

全角・半角文字の扱い

RIGHT関数は、全角文字と半角文字を区別せず、どちらも1文字として数えます。

=RIGHT(“Excel2024″, 4)    // 結果:”2024”

=RIGHT(“エクセル2024″, 4)  // 結果:”2024”

=RIGHT(“東京都”, 2)       // 結果:”京都”

この特性により、日本語と英数字が混在するデータでも、文字数を正確に指定すれば期待通りの結果が得られます。

文字数が元の文字列より大きい場合

指定した文字数が元の文字列の長さを超える場合、RIGHT関数は元の文字列全体を返します。

=RIGHT(“ABC”, 5)  // 結果:”ABC”(エラーにはならない)

この動作は、データの長さが不定な場合でもエラーを回避できるという利点があります。

RIGHT関数の利用シーン

電話番号の処理

電話番号から加入者番号や下4桁を抽出する際にRIGHT関数が活用されます。

携帯電話番号の下4桁抽出:

A1セル:090-1234-5678

=RIGHT(SUBSTITUTE(A1, “-“, “”), 4)  // 結果:”5678″

この例では、まずSUBSTITUTE関数でハイフンを除去してから、右端4文字を抽出しています。

固定電話の加入者番号抽出(ハイフンありの場合):

=RIGHT(A1, 4)  // “03-1234-5678″から”5678″を抽出

ファイル名と拡張子の処理

ファイル管理システムで、ファイル名から拡張子を抽出する場合に使用します。

拡張子の抽出(固定長の場合):

ファイル名:report_202403.xlsx

=RIGHT(A1, 5)  // 結果:”.xlsx”

より汎用的な拡張子抽出(可変長対応):

拡張子が .csv や .pptx など 長さが異なる場合は、最後のドット位置を検出して計算します。

=RIGHT(A1, LEN(A1) – FIND(“.”, A1, LEN(A1) – LEN(SUBSTITUTE(A1,”.”,””)) ))

結果:.xlsx / .csv / .pptx など(ドットを含む)

商品コードの分析

商品コードの末尾に分類情報が含まれている場合の処理です。

A1セル)商品コード例:ABC-12345-XL

サイズコード抽出:=RIGHT(A1, 2)  // 結果:”XL”

バーコードの検査数字抽出:

A1セル)JANコード:4901234567890

=RIGHT(A1, 1)  // 結果:”0″(チェックデジット)

※数字を文字列として扱うか、先頭にアポストロフィ ‘’’ を付けて入力してください。数値として入力すると指数表示になり正しく抽出できません。

日付データの処理

日付や時刻が シリアル値(通常の Excel 日付/時刻) の場合は、RIGHT だけでは意図した結果になりません。まず文字列に変換するか、専用関数を使います。

年月日から日のみ抽出:

A1セル:2024/03/15

=TEXT(A1,”dd”) または =RIGHT(TEXT(A1,”yyyy/mm/dd”),2) // 結果:”15″

時刻から秒を抽出:

A1セル:14:30:45

=TEXT(A1,”ss”) または =RIGHT(TEXT(A1,”hh:mm:ss”),2) // 結果:”45″

住所データの整理

住所から番地や部屋番号を抽出する場合に使用します。

郵便番号の下4桁抽出:

A1セル:〒123-4567

=RIGHT(A1, 4)  // 結果:”4567″

建物名・部屋番号の抽出(固定フォーマットの場合):

住所:東京都港区赤坂1-2-3-401

=RIGHT(A1, 3)  // 結果:”401″

RIGHT関数の応用・他関数との組み合わせ

LEFT関数・MID関数との使い分け

文字列の抽出位置によって、適切な関数を選択します。

元の文字列:”ABC-123-XYZ”

左から:=LEFT(A1, 3)    // “ABC”

中央 :=MID(A1, 5, 3)  // “123”

右から:=RIGHT(A1, 3)   // “XYZ”

複合的な使用例:

=LEFT(A1, 3) & “-” & RIGHT(A1, 3)  // 最初と最後の3文字を結合

LEN関数との組み合わせ

文字列の長さが不定な場合、LEN関数と組み合わせて柔軟な抽出を行います。

最後の単語を除く処理:

=LEFT(A1, LEN(A1) – 5)  // 右端5文字を除いた部分

可変長データからの抽出:

=RIGHT(A1, LEN(A1) – FIND(“-“, A1))  // 最初のハイフン以降を抽出

FIND関数・SEARCH関数との連携

特定の文字を基準にした抽出を行います。

最後のハイフン以降を抽出:

=RIGHT(A1, LEN(A1) – FIND(“~”, SUBSTITUTE(A1, “-“, “~”, LEN(A1)-LEN(SUBSTITUTE(A1, “-“, “”)))))

拡張子の動的抽出:

=RIGHT( A1, LEN(A1) – FIND( “◎”, SUBSTITUTE( A1, “.”,  “◎”, LEN(A1) – LEN(SUBSTITUTE(A1, “.”, “”)))))

※上記は「最後のピリオド以降」を抽出する数式です。

※Microsoft 365以降 をお使いなら、より簡単に

=TEXTAFTER(A1,”.”,-1)

でも同じ結果が得られます。

VALUE関数での数値変換

抽出した文字列を数値として扱う場合に使用します。

商品コード:PRD-2024-0315

年の抽出と数値化:=VALUE(RIGHT(LEFT(A1, 8), 4))  // 2024

郵便番号の数値化:

=VALUE(RIGHT(SUBSTITUTE(A1, “-“, “”), 4))  // 文字列”4567″を数値4567に

IF関数による条件付き抽出

条件に応じて抽出する文字数を変更します。

=IF(LEN(A1) > 10, RIGHT(A1, 5), RIGHT(A1, 3))

拡張子による分岐処理:

=IF(RIGHT(A1, 4) = “.xls”, “旧形式”, IF(RIGHT(A1, 5) = “.xlsx”, “新形式”, “その他”))

SUBSTITUTE関数での前処理

不要な文字を除去してから抽出を行います。

電話番号:(03) 1234-5678

=RIGHT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, “(“, “”), “)”, “”), ” “, “”), 4)

配列数式での一括処理

複数のセルに対して同時にRIGHT関数を適用します。

=RIGHT(A1:A10, 3)  // A1からA10の各セルから右端3文字を抽出

条件付き配列処理:

=IF(LEN(A1:A10) > 5, RIGHT(A1:A10, 3), “”)

Microsoft 365 / Excel 2021 など 動的配列 が使える環境では、通常の Enter で確定すれば範囲全体に結果がスピルします。

それ以前のバージョンでは、上記の式を選択範囲に入力し Ctrl + Shift + Enter で確定してください(確定後にブック上で { } が自動で表示されますが、自分で入力する必要はありません)。

RIGHT関数のよくあるエラーと対策

#VALUE!エラーの原因と対処

文字数引数に不適切な値を指定した場合に発生します。

原因1:文字数に負の値を指定

誤:=RIGHT(“テキスト”, -1)  // エラー

正:=RIGHT(“テキスト”, 1)   // 正の値を指定

原因2:文字数に文字列を指定

誤:=RIGHT(A1, “三”)        // エラー

正:=RIGHT(A1, 3)           // 数値を指定

エラー回避の対策:

=IFERROR(RIGHT(A1, B1), “文字数を確認してください”)

空白セルの処理

空白セルにRIGHT関数を適用すると、空白文字列が返されます。

=IF(A1=””, “データなし”, RIGHT(A1, 3))

より厳密なチェック:

=IF(LEN(TRIM(A1))=0, “”, RIGHT(A1, 3))

数値データの扱い

数値に対してRIGHT関数を使用すると、自動的に文字列に変換されます。

A1セル:12345(数値)

=RIGHT(A1, 2)  // 結果:”45″(文字列)

数値形式を保持したい場合:

=VALUE(RIGHT(A1, 2))  // 結果:45(数値)

日付データの注意点

日付型のデータは内部的にシリアル値として保存されているため、予期しない結果になることがあります。

A1セル:2024/3/15(日付型)

=RIGHT(A1, 2)  // シリアル値の下2桁が返される

対策

=RIGHT(TEXT(A1, “yyyy/mm/dd”), 2)  // “15”を正しく抽出

文字数指定の誤り

元の文字列長を超える文字数を指定してもエラーにはなりませんが、意図しない結果になる可能性があります。

安全な文字数指定:

=RIGHT(A1, MIN(希望文字数, LEN(A1)))

動的な文字数計算での注意:

=IF(LEN(A1) >= 必要文字数, RIGHT(A1, 必要文字数), A1)

パフォーマンスの考慮

大量のデータに対してRIGHT関数を使用する場合、他の関数との組み合わせによっては処理速度が低下することがあります。

効率的な処理:

// 非効率:複雑な入れ子

=RIGHT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, ” “, “”), “-“, “”), “(“, “”), 4)

// 効率的:段階的処理

B1: =SUBSTITUTE(A1, ” “, “”)

C1: =SUBSTITUTE(B1, “-“, “”)

D1: =RIGHT(C1, 4)

RIGHT関数で文字列の末尾から情報を取り出す

RIGHT関数は、文字列の右端から指定した文字数を抽出できるExcelの文字列関数です。電話番号の下4桁やファイル拡張子、商品コード末尾など、末尾に意味を持つデータ処理に適しており、さまざまな業務で活用されています。

全角・半角を問わず1文字として処理されるため、日本語と英数字が混在するデータでも安定した抽出が可能です。また、LEFT関数・MID関数との使い分けや、LEN・FIND・SUBSTITUTEとの連携により、動的かつ柔軟な処理が実現できます。

数値や日付を含むセルに適用する際は、文字列への変換やTEXT関数の併用が必要となることもあります。#VALUE!エラーの回避には、引数の妥当性チェックやIFERROR関数の活用が効果的です。RIGHT関数を適切に使いこなすことで、定型データの処理や業務の標準化に貢献できます。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事