• ベストアンサー

エクセルの文字列操作

住所録の様式で A列にNo、B列に氏名、C列に住所のファイルがあり、 C列の住所で、1個のセルに何故かしら「住所と電話番号」が入っています。 住所と電話番号を夫々別の列に分割したくて、 電話番号は、RIGHT 関数で取り出しました。 住所は、文字数が一定でないので、LEFTまたはMID関数では出来ません。 ここで質問です 住所データの末尾に混在する電話番号は10文字の場合に限定し、 文字数の異なる、住所(○○市XX町△△番地○△荘2-103など)のみ 抽出する方法はありませんか。 なお、VBAなどは無知です、エクセル関数だけの操作があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

LEN関数で文字列の長さを取得できますから、 =LEFT(住所電話番号, LEN(住所電話番号)-10) などとすると、住所分のみが取り出し可能です。

shorun
質問者

お礼

できた!! ありがとうございました。 電話番号10桁は間違いで、市外-局-番号の ハイフォンをいれて12桁です。 >  =LEFT(住所電話番号, LEN(住所電話番号)-10) ↑を =LEFT(住所電話番号, LEN(住所電話番号)-12)に修正して利用させて頂きました。 お詫びとお礼申し上げます。

その他の回答 (1)

noname#194317
noname#194317
回答No.2

住所と電話番号が決まった文字(例えばスペース)で区切られているなら、分離するのは 簡単です。 住所を取り出す式: =LEFT(C1,FIND(" ",C1)) 電話番号を取り出す式: =MID(C1,FIND(" ",C1)+1,LEN(C1)) この方法は、区切り文字と同じ文字が住所の中に紛れ込んでいると、うまくいきません。 また区切り文字が複数ある場合もダメです。これを一発でやれる方法はないでしょう。 正規表現が使えるエディタやフィルタがあれば、それでもなんとかできるでしょうが、 それよりは区切り文字を編集して統一する方が安直で、悩まずに済みます。

shorun
質問者

お礼

ありがとうございました。 区切り文字に"電話マーク"が入力されてれば良かったのですが、"スペース"1文字なので住所の中にも含まれているため、折角ですが、失敗するデータもありそうです。 でも、 FIND関数は勉強になりました、今後の参考に致します。