【関数】対象データの末尾(右)から指定した数の文字列を抽出できる「RIGHT」の使い方
AさんAさん

氏名の「名」など、特定データの末尾部分の文字を抽出したいですが、どう作業したら効率的ですかね?

森田森田

その場合は、関数のRIGHTを活用すると良いですよ!
では、RIGHTの使い方について解説していきますね。

はじめに

この記事は関数の概要を把握していることが前提です。

参考記事

関数の概要については以下の記事をご参照ください。

元データの文字列から末尾部分のみ抽出したい場合は「RIGHT」が有効

実務では、既存のデータと使いたいデータで粒度が合っていないケースがあります。

たとえば、氏名を「氏」と「名」に分けて管理したいといったイメージです。

この解決策として、既存データの文字列から必要な部分だけ抽出した列を用意することが必要です(例:氏名から「名」のみ抽出)。

こんな場合、関数の「RIGHT」を使うことで、対象データの末尾(右)から指定した数の文字列を自動的に抽出することが可能となります。
ちなみに、RIGHTは「ライト」と呼びます。

よって、元データの文字列から末尾部分のみ抽出したい場合はRIGHTを使用していきましょう。

参考記事

対象データの「先頭(左)」から抽出したい場合はLEFT、対象データの「任意の位置」から抽出したいはMIDを使用してください(詳細は以下の記事を参照)。


RIGHTの構文

RIGHTの構文は以下の通りです。

=RIGHT(文字列,文字数)
文字列の末尾から指定された文字数の文字を返します。

引数名 必須 データ型 説明
文字列 文字列 抽出対象のセルを指定します。
文字数 数値 「文字列」の末尾から抽出したい文字数を指定します。

引数「文字数」は省略時「1」を指定したと見なされます。
引数「文字数」は「0」以上の数値を指定する必要があります(負の数はエラー値「#VALUE!」が表示)。
引数「文字数」へ引数「文字列」の文字数を超える数値を指定した場合、引数「文字列」の値がそのまま返ります。
引数「文字数」を小数点まで指定した場合、整数部分で抽出されます。

【参考】RIGHTは「文字列操作関数」

あくまで参考情報となりますが、RIGHTはリボン「数式」タブの関数ライブラリの「文字列操作」に分類されています。

実際にRIGHTを活用する際は、以下で解説しているように直接入力で挿入していきましょう。

RIGHTの使用結果イメージ

RIGHTで対象データの末尾(右)から指定した数の文字列を抽出したイメージは以下の通りです。
今回は「氏名」列のデータから「名」の文字列を抽出しました。

なお、RIGHTは原則一つの関数で一つのセルのみが抽出対象です。

ベースの数式をセットしたら、他のセルへペーストしましょう。

上記の戻り値は「名」が2文字以外の場合はうまく抽出できていません。
抽出したい文字数にバラツキがある場合の対応方法は、本記事の「【応用】対象データによって引数「文字数」を可変にしたい場合は」をご参照ください。

RIGHTの数式の挿入手順

上記の結果を得るための手順は以下の通りです。

  1. 関数を挿入するセルを選択
    ※今回はC2セル
  2. =ri」と入力
  3. サジェストから「RIGHT」を選択し、「Tab」キーで確定
  4. 抽出対象のセルを選択
    ※今回はB2セル
  5. コンマ(,)を入力
  6. 任意の文字数を指定
    ※今回は「2」を指定
  7. Enter」キーで確定
  8. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はC3~C11セルへペースト

手順②の際にIMEを半角英数モードにすること。
テーブルの場合、手順⑧は不要(全レコードへ数式が自動的にコピーされる)。

【応用】対象データによって引数「文字数」を可変にしたい場合は

RIGHTの引数「文字数」は固定値(定数)を指定することが基本です。

本記事では氏名から「名」を抽出にあたり、「2」を指定していました。

しかし、「名」の中には13文字でバラツキがあり、一部のレコードは「名」の抽出がうまく行っていません。

こうした場合は固定値ではなく、FINDなどの関数をネストし、目印となる文字(本記事であれば半角スペース)を基準に引数「文字数」が可変になるようにすると良いです。

RIGHT+FINDの組み合わせテクニックについては後日別記事にする予定です。

参考記事

FINDの詳細は以下の記事をご参照ください。

【参考】半角と全角を区別して抽出したい場合は「RIGHTB

RIGHTで行う抽出は、半角(1バイト)と全角(2バイト)を区別せず、1文字を「1」として処理します。

もし、半角と全角を区別して抽出したい場合はRIGHTB」(ライトビー)を使いましょう。

=RIGHTB(文字列,バイト数)
文字列の末尾から指定された文字数の文字を返します。半角文字は1バイト、全角文字は2バイトとなります。

この関数の「1」は1バイトを示し、バイト数を基準に抽出することが可能です。

1文字が1バイトに変わるだけで、使い方自体はRIGHTと同様です。

サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_ワークシート関数_RIGHT.xlsx

※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)

ブックを開いたら、次の手順を実施してください。(今までの解説のまとめです)

  1. 関数を挿入するセルを選択
    ※今回はC2セル
  2. =ri」と入力
  3. サジェストから「RIGHT」を選択し、「Tab」キーで確定
  4. 抽出対象のセルを選択
    ※今回はB2セル
  5. コンマ(,)を入力
  6. 任意の文字数を指定
    ※今回は「2」を指定
  7. Enter」キーで確定
  8. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はC3~C11セルへペースト

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

RIGHTはデータの抽出や分割に役立つ関数の一つです。

定期的にデータ抽出/分割の作業を行う機会があるなら、ぜひ覚えておいた方が良いですね。

なお、RIGHT以外にもExcelでのデータ整形の各種テクニックを拙著で解説していますので、こちらも参考にしてみてください。



ご参考になれば幸いですm(_ _)m

森田森田

RIGHTとセットで覚えておいた方が良い関数は抽出する位置が異なるLEFTMIDです。
その他、臨機応変に抽出/分割したい場合はFINDLENもセットで使えるとベターですね。