概要
「ファイル名が .xlsx で終わっているか知りたい」
「商品コードの末尾が -JP のものだけ抽出したい」
「文字列が『さん』で終わる行だけ判定したい」
こういう “文字列の末尾が、ある文字列と一致しているかどうか” を調べる場面では、
RIGHT 関数+比較演算子(=) を使うのが王道です。
考え方はとてもシンプルで、
- RIGHTで「末尾◯文字」を取り出す
- それが調べたい文字列と「= で一致しているか」を見る
この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(対象セル, 末尾で見たい文字数) = "判定したい文字列"
この型さえ押さえておけば、
ファイル名の拡張子、商品コードの種別、敬称、末尾記号の有無など、
「終わり方で意味が変わる」データを、自在に振り分けたり整形したりできるようになります。
