RIGHT関数の使い方|文字列の末尾から指定文字数を取り出す

執筆者:

カテゴリ:

RIGHTは、文字列の末尾から、指定した文字数だけ取り出す関数です。

LEFT の逆向きで、「電話番号の下4桁」「ファイルの拡張子」といった切り出しに使います。ExcelとGoogleスプレッドシートで共通です。

書式

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

文字数を省略すると1文字だけ返します。

基本の使い方

A1に ABC-1234 が入っているとします。

=RIGHT(A1, 4)   → 1234

末尾から可変長で取り出す

末尾の取り出しは、文字数が固定でないことが多いのがLEFTとの違いです。

RIGHT は「末尾から何文字」しか指定できないため、全体の長さから、前半の長さを引くという計算が必要になります。

A1が ABC-1234 の場合、「-」より後ろを取り出すには次のように書きます。

=RIGHT(A1, LEN(A1) - FIND("-", A1))
  • LEN(A1) … 全体の文字数(8)
  • FIND("-", A1) … 「-」の位置(4)
  • – 8 − 4 = 4文字を末尾から取る → 1234

この形が実務での基本形になります。

区切りが無い場合に備えて包んでおくと安全です。

=IFERROR(RIGHT(A1, LEN(A1) - FIND("-", A1)), A1)

区切り文字が複数あるとき

FIND最初に見つかった位置を返します。ファイルパスのように区切りが複数あると、期待通りになりません。

A1 = data/2026/report.csv

最後の区切りより後ろを取り出すには、区切り文字を一度別の文字に置き換える手法を使います。

=RIGHT(A1, LEN(A1) - FIND("|", SUBSTITUTE(A1, "/", "|", LEN(A1)-LEN(SUBSTITUTE(A1,"/","")))))

読みにくいので、REGEXEXTRACT を使うほうが実用的です。

=REGEXEXTRACT(A1, "([^/]+)$")

「最後の / より後ろ」という意味です。圧倒的に短く、意図も明確です。

実用例

拡張子を取り出す

=REGEXEXTRACT(A1, "\.([^.]+)$")

RIGHT で書くこともできますが、拡張子の長さが可変なので正規表現のほうが確実です。

電話番号の下4桁

=RIGHT(A1, 4)

これは固定長なので RIGHT が最適です。

郵便番号の下4桁

=RIGHT(A1, 4)

ハイフンが入っている場合(123-4567)もそのまま動きます。

括弧の中身を取り出す

=REGEXEXTRACT(A1, "\((.+)\)")

全角・半角の数え方

RIGHTは全角も半角も1文字として数えます。 バイト単位なら RIGHTB ですが、実務で必要な場面は限られます。

日付・数値に使うとき

日付にRIGHTを使うと、内部のシリアル値の末尾が返ります。日付から日を取り出したいなら DAYTEXT を使ってください。

=DAY(A1)
=TEXT(A1, "d")

数値に使った場合も、結果は文字列になります。計算に使うなら VALUE で戻してください。

ゼロ埋めが必要な数値0042 のような伝票番号)は、RIGHTで取り出すと先頭の0が消えていることがあります。元データが数値なら TEXT でゼロ埋めしてから取り出してください。

=RIGHT(TEXT(A1, "000000"), 4)

全行に適用する

=ARRAYFORMULA(IF(A2:A="", "", RIGHT(A2:A, 4)))

可変長の場合も同様に包めます。

=ARRAYFORMULA(IF(A2:A="", "", RIGHT(A2:A, LEN(A2:A) - FIND("-", A2:A))))

エラーの対処

#VALUE! が出る

  • FIND が対象を見つけられていない
  • – 文字数にマイナスを指定している

IFERROR で包むか、FIND 単体の結果を確認してください。

想定と違う位置で切れる

末尾に見えない文字(改行・スペース)が付いている可能性があります。LEN() で確認し、TRIM で整えてください。

=RIGHT(TRIM(A1), 4)

CSVから読み込んだデータでは、末尾の空白や改行が残っていることがよくあります。

まとめ

  • – 書式は =RIGHT(文字列, 文字数)
  • – 可変長なら LEN(A1) - FIND(...) で文字数を計算する
  • 区切り文字が複数あるなら REGEXEXTRACT が圧倒的に短い
  • – 全角も半角も1文字として数える
  • 末尾の見えない空白に注意。TRIM で整える
  • – ゼロ埋めが要る数値は TEXT を先に通す

関連する関数

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です