Excel関数 逆引き集 | 文字列の末尾一致判定 → RIGHT

Excel
スポンサーリンク

概要

「ファイル名が .xlsx で終わっているか知りたい」
「商品コードの末尾が -JP のものだけ抽出したい」
「文字列が『さん』で終わる行だけ判定したい」

こういう “文字列の末尾が、ある文字列と一致しているかどうか” を調べる場面では、
RIGHT 関数+比較演算子(=) を使うのが王道です。

考え方はとてもシンプルで、

  1. RIGHTで「末尾◯文字」を取り出す
  2. それが調べたい文字列と「= で一致しているか」を見る

この2ステップだけです。


RIGHT 関数の基本

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

書式はこうなります。

=RIGHT(文字列, 文字数)

文字列
末尾を調べたい元の文字列(セル参照で指定することが多い)

文字数
「末尾から何文字取るか」

例として、A2 に「report.xlsx」が入っているとします。

=RIGHT(A2, 5)

結果:「.xlsx」

末尾3文字ならこうです。

=RIGHT(A2, 3)

結果:「lsx」

この「末尾だけを切り出す」RIGHTに、
「= ‘判定したい文字列’」という比較を組み合わせることで、末尾一致判定ができます。


基本パターン:末尾が特定文字列と一致するか判定

末尾5文字が「.xlsx」かどうか調べる

A2 にファイル名(例:「report.xlsx」「data.csv」)が入っているとします。
このファイル名が 「.xlsxで終わっているか?」 を判定したい場合、式はこうなります。

=RIGHT(A2, 5) = ".xlsx"

意味としては、

RIGHT(A2,5) … 末尾5文字を取り出す
それが “.xlsx” と等しいかどうか

A2 が「report.xlsx」なら TRUE
A2 が「data.csv」なら FALSE

という論理値が返ってきます。

これを IF と組み合わせると、例えばこう書けます。

=IF(RIGHT(A2, 5)=".xlsx", "Excelファイル", "その他")

末尾が「.xlsx」なら「Excelファイル」、
それ以外なら「その他」という文字列を返します。


応用1:商品コードの末尾で種別判定

A2 に商品コードが入っているとします。

例:
「ABC123-JP」
「DEF999-US」

末尾3文字が「-JP」なら「国内」、
「-US」なら「海外」、
それ以外は「その他」と判定したい場合は、IF を入れ子にします。

=IF(RIGHT(A2,3)="-JP","国内",
   IF(RIGHT(A2,3)="-US","海外","その他"))

RIGHT(A2,3) で末尾3文字を取り出し、
それが「-JP」「-US」のどれかかで分類しているわけです。


応用2:人名の敬称(さん/様/君)で判定

A2 に名前+敬称が入っているとします。

例:
「山田さん」
「佐藤様」
「田中君」

末尾2文字が「さん」「様」「君」かどうかを判定することもできます。

例えば、「さん」で終わる人だけ TRUE にしたい場合。

=RIGHT(A2,2)="さん"

同様に、「様」で終わる場合だけ「VIP」表示したいなら、

=IF(RIGHT(A2,1)="様","VIP","")

と、末尾1文字(様)で判定することもできます。


応用3:特定の拡張子のファイルだけ抽出したい

A2 にファイル名一覧が入っていて、

「.xlsx」「.xls」「.csv」などが混ざっている場合、
「Excel関連(.xlsx/.xls)だけ TRUE」にしたいことがあります。

末尾4文字が「.xls」または末尾5文字が「.xlsx」なら TRUE、
という OR 条件にすると、こう書けます。

=OR(RIGHT(A2,4)=".xls", RIGHT(A2,5)=".xlsx")

これを IF に包めば、

=IF(OR(RIGHT(A2,4)=".xls", RIGHT(A2,5)=".xlsx"),"Excel系","その他")

といった判定もできます。


応用4:数値コードの末尾桁で判定する

A2 に数字だけの文字列(または数値)が入っているとします。

例:
「12341」
「67892」

末尾1桁が「1」で終わるコードだけ「タイプ1」、
末尾2桁が「92」で終わるコードだけ「特別」としたい場合など。

文字列として扱う前提なら、末尾1桁・2桁を RIGHT で判定します。

=IF(RIGHT(A2,1)="1","タイプ1",
   IF(RIGHT(A2,2)="92","特別","その他"))

数値で入っている場合も、Excelは内部で勝手に文字列と比較してくれるので、
そのまま RIGHT を使って OK です。


応用5:末尾の記号を取り除く(簡易)

末尾だけ一致を調べるだけでなく、
「もし末尾に特定の記号がついていたら、外してしまう」というときにも
RIGHT の判定+LEFT を組み合わせて使えます。

例えば、A2 に

「商品A*」
「商品B」

のような文字列が入っていて、
末尾に「」がついているものだけ、 を取り除きたい場合。

=IF(RIGHT(A2,1)="*", LEFT(A2, LEN(A2)-1), A2)

末尾1文字が「*」なら、
LEN(A2)-1 文字ぶん LEFT で切り出す(=最後の1文字を削る)
それ以外なら元の A2 をそのまま返す

という動きになります。


問題1

A2 にファイル名が入っています。
このファイル名が「.xlsx」で終わる場合に TRUE、それ以外は FALSE を返す式を書いてください。
RIGHT を使ってください。

=RIGHT(A2,5)=".xlsx"

問題2

A2 に商品コード(例:「ABC123-JP」「DEF999-US」)が入っています。
末尾3文字が「-JP」のときに「国内」、それ以外は空白 “” を返す式を書いてください。

=IF(RIGHT(A2,3)="-JP","国内","")

問題3

A2 に名前が「山田さん」「佐藤様」「田中君」のように入っています。
末尾2文字が「さん」で終わる場合に TRUE、それ以外は FALSE を返す式を書いてください。

=RIGHT(A2,2)="さん"

問題4

A2 にファイル名が入っています。
末尾が「.xls」または「.xlsx」で終わる場合に「Excel系」、それ以外は「その他」と表示する式を書いてください。
RIGHT と OR、IF を組み合わせてください。

=IF(OR(RIGHT(A2,4)=".xls",RIGHT(A2,5)=".xlsx"),"Excel系","その他")

問題5

A2 に「商品A」や「商品B」のような文字列が入っています。
末尾に「
」が付いている場合はその「*」を取り除き、付いていない場合はそのまま表示したいです。
RIGHT・LEFT・LEN・IF を組み合わせた式を書いてください。

=IF(RIGHT(A2,1)="*",LEFT(A2,LEN(A2)-1),A2)

文字列の末尾一致判定の“型”は、たったこれだけです。

=RIGHT(対象セル, 末尾で見たい文字数) = "判定したい文字列"

この型さえ押さえておけば、
ファイル名の拡張子、商品コードの種別、敬称、末尾記号の有無など、
「終わり方で意味が変わる」データを、自在に振り分けたり整形したりできるようになります。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました