佐藤です。フリーランスになって、1年になりました。
1年経って、フリーランスになってほんとよかったと実感しています。
今回は、毎回忘れて検索してしまう、Excelの関数について。
ある文字列の特定の文字(複数あるうちの最後の文字)から後ろの文字列を抜き出す方法についてです。
例)
A1セルにある文字列「https://sample.jp/topic/page1.html」から「page1.html」を取得する。
=SUBSTITUTE(A1,LEFT(A1,FIND(“●”, SUBSTITUTE(A1, “/”, “●”, LEN(A1) – LEN(SUBSTITUTE(A1, “/”, “”))))),””)
=SUBSTITUTE(【元の文字列】,LEFT(【元の文字列】,FIND(“●”, SUBSTITUTE(【元の文字列】, “【特定の文字】”, “●”, LEN(【元の文字列】) – LEN(SUBSTITUTE(【元の文字列】, “【特定の文字】”, “”))))),””)
※”●”は元の文字列に含まれない文字を設定します。
行っていることは以下になります。
①「LEN(【元の文字列】) – LEN(SUBSTITUTE(【元の文字列】, “【特定の文字】”, “”))」
元の文字数から、特定の文字全てを消した文字数を引くことで特定の文字はいくつ含まれているか特定。
②「SUBSTITUTE(【元の文字列】, “【特定の文字】”, “●”, LEN(【元の文字列】) – LEN(SUBSTITUTE(【元の文字列】, “【特定の文字】”, “”)))」
元の文字列にある、一番最後(①番目)の特定の文字だけを”●”に置換。
③「FIND(“●”, SUBSTITUTE(【元の文字列】, “【特定の文字】”, “●”, LEN(【元の文字列】) – LEN(SUBSTITUTE(【元の文字列】, “【特定の文字】”, “”))))」
②で置換された”●”の文字位置を検索。
④「LEFT(【元の文字列】,FIND(“●”, SUBSTITUTE(【元の文字列】, “【特定の文字】”, “●”, LEN(【元の文字列】) – LEN(SUBSTITUTE(【元の文字列】, “【特定の文字】”, “”)))))」
元の文字列の左から③までの文字列を取得。
⑤「SUBSTITUTE(【元の文字列】,LEFT(【元の文字列】,FIND(“●”, SUBSTITUTE(【元の文字列】, “【特定の文字】”, “●”, LEN(【元の文字列】) – LEN(SUBSTITUTE(【元の文字列】, “【特定の文字】”, “”))))),””)」
元の文字列から④で取得した文字列を削除。