K-fix Learning & Playing

Question 06


一番右側の文字列を取得しよう

セル【C2】には、左隣りのB列の文字列の中の一番右の文字列(名前)を取得する関数を考えてください。

問題6

使用可能な関数(TRIM、RIGHT、REPT、SUBSTITUTE、LEN関数)
けっこう考える数式です。SUBSTITUTE関数の引数「置換文字列」にREPT関数で文字数分の空白を作ります。検索文字列には「/」を指定します。
尚、文字数分の空白はLEN関数で作ります。SUBSTITUTE関数の返り値をRIGHT関数を使って、文字数分の文字列を取り出し、最後にTRIM関数で前後の空白を除いていければ、名前を取り出すことができます。

セルC2の数式:=TRIM(RIGHT(SUBSTITUTE(A2,"/",REPT(" ",LEN(A2))),LEN(A2)))
数式内で一番深いREPT関数では、空白を文字数分作成します。次にSUBSTITUTE関数では「/」を文字数分の空白に置き換えています。そして、次のRIGHT関数では置き換えられた文字列の右から文字数分を取り出します。最後にTRIM関数で文字の前後の空白を除いています。