- ベストアンサー
EXCELでフルパスから2つ目¥を抽出したい
EXCEL2010を使用しています。 フルパスから、2つめの¥で区切って列に表示したいです。 例えば、A1セルに C:\Users\hanako\Desktop\test が入力されているので、 A1セルにC:\Users\ B1セルにhanako\Desktop\test のように、区切りたいのです。 ご教示の程、どうぞよろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 A1セルにあって、A1セルに出力するというと、マクロになってしまいますので、 B1,C1と出すことにしますと、 B1: =MID(A1,1,FIND("*",SUBSTITUTE(A1,"\","*",2))) 「*」は、パスに使っていない文字を選びました。 (「\」バックスラッシュは、パスセパレータの「¥」です) C1: =SUBSTITUTE(A1,B1,"")
その他の回答 (2)
- kagakusuki
- ベストアンサー率51% (2610/5101)
>A1セルに >C:\Users\hanako\Desktop\test >が入力されているので、 >A1セルにC:\Users\ というのは関数では無理ですので、 B1セルにC:\Users\ C1セルにhanako\Desktop\test という様に、結果を表示させるセルを変更するものとします。 又、もしも、A1セルに入力されている文字列の中に「\」を2個以上含まれていなかったり、A1セルが空欄であったりした場合にも、エラー表示を出さない様にするものとします。 又、C1セルの値は、B1セルの結果が無くとも、独立して求める事が出来る様にするものとします。 その場合、B1セルの関数は次の様になります。 =IF(A1="","",IF(COUNTIF(A1,"*?\*?\*"),LEFT(A1,FIND(CHAR(1),SUBSTITUTE(A1,"\",CHAR(1),2))),"「分割不能」")) そして、C1セルの関数は次の様になります。 =IF(A1="","",IF(COUNTIF(A1,"*?\*?\*?"),REPLACE(A1,1,FIND(CHAR(1),SUBSTITUTE(A1,"\",CHAR(1),2)),),"「分割不能」"))
お礼
お礼が大変遅くなり、申し訳ありませんでした。 詳細にお教えいただき、感謝いたします。 今後とも、どうぞよろしくお願いいたします。
A1にC:\Users\hanako\Desktop\testであればB、C列に関数を入力するものとしました。 B1=LEFT(A1,FIND("\",A1,FIND("\",A1,1)+1)) C1=SUBSTITUTE(A1,B1,"")
お礼
お礼が大変遅くなり、申し訳ありませんでした。 No.2の方の方法で、解決いたしました。 また、どうぞよろしくお願いいたします。
お礼
お礼が大変遅くなり、申し訳ありませんでした。 お蔭様で、無事抽出することができました。 今後とも、どうぞよろしくお願いいたします。