ここから本文です

エクセル2007複数のデータを入力されたセルから電話番号のみを抜き取りたい。

このエントリーをはてなブックマークに追加

質問者

butabutakobutantanさん

2012/3/1316:06:30

エクセル2007複数のデータを入力されたセルから電話番号のみを抜き取りたい。

※内容を一部変えて再度質問させていただきます。


調べても分からなかったので、どなたかご教授お願いします。

エクセル2007を使用し、ある表から電話番号だけを抜き出したいのですが、
電話番号の書かれているセルに、余分なことが複数入れられているため、
オートフィルタでの抽出や、Alt+Hでの置き換えがうまくいきません。

同セルの中にこれだけの情報が入っています。
「車の年式・車名・担当者・電話番号」
※データは・のように記号等で区切らず、スペースを空けたり、繋がったりしています。

また電話番号はハイフンがあったりなかったりと統一性がありません;

「車の年式・車名・担当者・電話番号」でゴチャゴチャになっているセルを
「電話番号」のみにしたいのです。

申し訳ありませんが、マクロ等VBAは分かりませんので、
それ以外の方法がありましたら教えていただけないでしょうか?
どうぞよろしくお願いいたします。

閲覧数:
1,142
回答数:
3

違反報告

ベストアンサーに選ばれた回答

wassamu197さん

2012/3/1318:22:26

あなたの書き方から、電話番号が右端にあることとします。
A1セルに文字列があるときに
次式で、電話番号が得られます。
=RIGHT(RIGHT(A1,13),LEN(RIGHT(A1,13))-FIND("0",RIGHT(ASC(A1),13))+1)
長すぎますが、ご自分で考えられるときは次のようにします。

右端の13文字以内に電話番号があるので、右側の13文字を得る。
B1セルに次式を入れます。
=RIGHT(A1,13)

頭の方に0が有るはず。その位置を見つける。
C1セルに次式を入れます。
=FIND("0",ASC(B1))

0以降の文字列にします。
D1セルに次式を入れます。
=RIGHT(B1,LEN(B1)-C1+1)

これらを1つにまとめると、上の数式になります。
(B1やC1、D1のセル参照をそれぞれそのセルの数式に置き換えるだけです。)

この質問は投票によってベストアンサーに選ばれました!

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル
  • このエントリーをはてなブックマークに追加

このQ&Aで解決しましたか?質問する

閉じる

ベストアンサー以外の回答
1〜2件/2件中
並び替え:回答日時の
新しい順
|古い順

x_x_p_q_x_xさん

編集あり2012/3/1400:30:42

ちょっと修正します。
電話番号の()や-またはスペース区切りを全て「-」区切りに変更した方が
見やすいですよね。

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1," ","-"),"(","-"),")","-"),"-","-")
※スペース(空白)、(、)、全角-を半角「-」に置換します。
※他に記号がある場合は追加してください。

セルC1に
IF(ISNUMBER(MID(B1,LEN(B1)-12,1)*1),ASC(RIGHT(B1,13)),ASC(RIGHT(B1,12)))

----------------------------------------

電話番号が、10桁、または、11桁限定です。

対象セルがA1だとして
セルB1に
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1," ",""),"(",""),")",""),"-","")
※スペース(空白)、(、)、-を削除します。
※他に記号がある場合は追加してください。

セルC1に
=IF(ISNUMBER(MID(B1,LEN(B1)-10,1)*1),ASC(RIGHT(B1,11)),ASC(RIGHT(B1,10)))

で、如何でしょう?

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

a_headfishさん

2012/3/1316:45:58

「車の年式・車名・担当者・電話番号」がA列にある物として
他の列は未使用であるなら、すごく面倒な処理ですが、

1)1行目に空白行を挿入し、A1に数字を入れる場所を確保
まずは電話番号なので10を入力しておく

2)2行目以降のデータ入力されたB列に
=RIGHT(A2,$A$1)
を入力し、全ての分割したい行にコピーする

3)表示された全ての行で電話番号の全てを表示しているかを確認する
(電話番号以外に表示されていても今はそのままでOK)

4)表示された電話番号が必ず含んでいる状態のB列をコピーする。
貼り付け時に「形式を選択して貼り付ける」を選び、「値」を選んで、同じセルに貼り付ける
これで「車の年式・車名・担当者・電話番号」の内容から
「担当者・電話番号」や「車名・担当者・電話番号」、「電話番号」になります。
当然ですが、
「2012年、TOYOTAクラウン、知恵袋、0120-34-56789」が元だとすると
「0120-34-56789」もあれば
「恵袋、0120-34-56789」などもあると思います。

5)さらに、2~4を同じように繰り返しますが、次は個別に文字数を変化させる必要があるので隣のセル(C列に結果を残すためD列に何文字残すかの数字を入れます)
上記の場合なら、D2には12文字を残したいので
D2に12、
C2には
=RIGHT(B2,D2)
として、データのある行全てにコピー。
で、D列に数字を入れ、電話番号だけが表示するように数字を調整して入力していきます。
入力が最終行まで済めば、C列には
「0120-34-56789」や「01203456789」や「0120(34)56789」などが表示されると思います。

ここでさらに、4)と同じ事を、C列に対して行います。
これで、電話番号だけの列がC列に出せます。


マクロを使わず、手順を追えば、難しくはないと思います。
最後に、C列に表示されている電話番号に含まれた「()」や「-」などをC列限定で文字置換すれば数字だけにも可能だと思います。

2)~4)を飛ばして、1)、5)でも可能ですが、その場合は説明文章のセル位置が若干移動しますので慣れてからの方がよいかな?

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問につけられたタグ

タグランキングを見る

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

ID/ニックネームを選択し、「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する