- ベストアンサー
エクセルで特定文字間の抽出方法を教えてください
- エクセルで特定文字間の抽出方法についてお教えください。抽出対象は言語/ページ名または言語/カテゴリ/ページ名の形式です。
- エクセルの特定文字間の抽出において、言語/ページ名と言語/カテゴリ/ページ名の形式における抽出方法が知りたいです。
- エクセルにおいて、言語/ページ名または言語/カテゴリ/ページ名の形式の特定文字間の抽出方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
カテゴリーが無い場合はその列は空白を返すので良いのですか? C11:データ D11:ページ名 E11:カテゴリ F11:ページ名 D11式 =LEFT(C11,FIND("/",C11,1)) E11式 =IF(LEN(C11)-LEN(SUBSTITUTE(C11,"/",""))>1,LEFT(SUBSTITUTE(C11,D11,""),FIND("/",SUBSTITUTE(C11,D11,""),1)),"") F11式 =SUBSTITUTE(SUBSTITUTE(C11,D11,""),E11,"") D11~F11を下方へオートフィル E11式は、質問の数式では最初のスラッシュが4文字目以降に無いと数式が成り立たちません。言語の文字を空白置換した後にfind関数でスラッシュを検索すれば、言語の文字数に依存されない方法として修正しました。
その他の回答 (1)
- bunjii
- ベストアンサー率43% (3589/8249)
>”言語/ページ名”の場合と”言語/カテゴリ/ページ名”の場合の抽出方法をお教え頂けましたら幸いです。 IF関数で条件分岐すれば良いでしょう。 条件式は次のようにすれば判定できます。 ISERROR(FIND("/",SUBSTITUTE(C2,"/","",1))) FIND関数で"/"の位置を検索するとき検索対象の文字列をSUBSTITUTE関数で最初の"/"を削除または他の文字に置き換えると”言語/ページ名”のときエラーになります。 そのエラーの有無で条件分岐すれば目的に合います。 カテゴリの切り出し =IF(ISERROR(FIND("/",SUBSTITUTE(C2,"/","",1))),"",MID(C2,FIND("/",C2)+1,FIND("/",SUBSTITUTE(C2,"/","X",1))-FIND("/",C2)-1)) ページ名の切り出し =IF(ISERROR(FIND("/",SUBSTITUTE(C2,"/","",1))),MID(C2,FIND("/",C2)+1,LEN(C2)),MID(C2,FIND("/",SUBSTITUTE(C2,"/","X",1))+1,LEN(C2)))
お礼
bunjii 回答有難うございます。 なるほど、エラーで分岐すればよいのですね、大変勉強になりました。
お礼
dogs_cats様 回答有難うございます。 完璧です。