Webディレクターとしてサイトリニューアル案件を担当していると、既存サイトのページ移行作業として、大量のデータを扱う場面があります。大規模サイトだと1万ページ以上の移行となり、エクセルの関数がある程度扱えないと仕事になりません。
個人的によく利用するのが、URLの最後の「/」(スラッシュ)より右の文字列を取得するというテクニック。
下記の式を「B2」のセルに入力すれば、OK!
=RIGHT(A2,LEN(A2)-FIND("★",SUBSTITUTE(A2,"/","★",LEN(A2)-LEN(SUBSTITUTE(A2,"/","")))))
あとは、コピー&ペーストか、フィルハンドルをドラッグして数式を下にコピーするだけ。
RIGHT関数, FIND関数, LEN関数, SUBSITUTE関数の組み合わせと、なぜか「★」があるという変な式。
式を理解するのが面倒な人は、下記のサンプルをダウンロードしてください。
「セル番号」や「/(スラッシュ)」を別の文字に書き換えれば、色々と流用できます。「★」は対象データの中で使われていない文字であれば「★」でなくても可。
時間のない人はここで、さようなら。
式の意味をきちんと理解したい人はここから読んでください。
まずは、「RIGHT関数」から。
「RIGHT関数」は、対象データの後ろから何番目の文字を取り出す関数です。
例えば、「NorthDetail」という文字に対して、「Detail」だけを取り出したい場合、後ろから6番目を指定して第2引数に設定。
後ろから6文字の「Detail」を抜き出すことができました。
「FIND関数」は、検索する文字列から対象の文字が何番目にあるかを教えてくれます。
例えば、「NorthDetail」という文字に対して、「D」がある場所(先頭から何番目)を知りたい場合。
「NorthDetail」の「D」は、 先頭 から「6番目」だとわかりました。
「LEN関数」は、指定したセルに入力されている文字列の文字数を返す関数です。
第1引数:文字数を知りたい「セル番号」を指定
「NorthDetail」の文字数は「11」だとわかりました。
SUBSTITUTE関数は、セル内の文字を別の文字に置き換えることができる関数です。
セル「A2」の5番目の「 / 」を「 ★ 」に置換できました。
=RIGHT(A2,LEN(A2)-FIND("★",SUBSTITUTE(A2,"/","★",LEN(A2)-LEN(SUBSTITUTE(A2,"/","")))))
上記で説明した「RIGHT関数」「FIND関数」「LEN関数」「SUBSITUTE関数」を理解できれば、今回の式を読み解くことができます。
https://www.northdetail.co.jp/blog/exel/2023/2/28.html
赤字の部分を抜き出したい。
https://www.northdetail.co.jp/blog/excel/2023/2★28.html
=RIGHT(A2,LEN(A2)-FIND("★",SUBSTITUTE(A2,"/","★",LEN(A2)-LEN(SUBSTITUTE(A2,"/","")))))
LEN関数を利用して、全体の文字数からスラッシュを空白に置換した文字数を引くとスラッシュの数を取得。
SUBSTITUTE関数で、最後尾の「/」を「★」に置換。
https://www.northdetail.co.jp/blog/excel/2023/2★28.html
=RIGHT(A2,LEN(A2)-FIND("★",SUBSTITUTE(A2,"/","★",LEN(A2)-LEN(SUBSTITUTE(A2,"/","")))))
FIND関数を利用して、全体の文字数から「★」が何番目かを調べる。
https://www.northdetail.co.jp/blog/excel/2023/2★28.html
=RIGHT(A2,LEN(A2)-FIND("★",SUBSTITUTE(A2,"/","★",LEN(A2)-LEN(SUBSTITUTE(A2,"/","")))))
LEN関数で全体の文字数を取得して、STEP2で取得した「★」の位置の差を求める。
https://www.northdetail.co.jp/blog/excel/2023/2★28.html
=RIGHT(A2,LEN(A2)-FIND("★",SUBSTITUTE(A2,"/","★",LEN(A2)-LEN(SUBSTITUTE(A2,"/","")))))
RIGHT関数で、STEP3で取得したの位置から右側を取得。
以上で、解説はおしまいです。
WEBディレクターといえば、スケジュール管理や社内調整、顧客折衝などコミュニケーションがメインではあるものの、データを扱うことも多く、効率的な業務が必要となります。
エクセルに加えて、コマンド操作、VBA、マクロなども使いこなすことができると業務の範囲を広げることができます。非エンジニアとしては苦手な分野ではありますが、少しづつ勉強して得た知識や技術をブログで紹介したいと思います。