
※内容を一部変えて再度質問させていただきます。
調べても分からなかったので、どなたかご教授お願いします。
エクセル2007を使用し、ある表から電話番号だけを抜き出したいのですが、
電話番号の書かれているセルに、余分なことが複数入れられているため、
オートフィルタでの抽出や、Alt+Hでの置き換えがうまくいきません。
同セルの中にこれだけの情報が入っています。
「車の年式・車名・担当者・電話番号」
※データは・のように記号等で区切らず、スペースを空けたり、繋がったりしています。
また電話番号はハイフンがあったりなかったりと統一性がありません;
「車の年式・車名・担当者・電話番号」でゴチャゴチャになっているセルを
「電話番号」のみにしたいのです。
申し訳ありませんが、マクロ等VBAは分かりませんので、
それ以外の方法がありましたら教えていただけないでしょうか?
どうぞよろしくお願いいたします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
>「車の年式・車名・担当者・電話番号」
>※データは・のように記号等で区切らず、スペースを空けたり、繋がったりしています。
>また電話番号はハイフンがあったりなかったりと統一性がありません;
>残念なことに電話番号も先頭に入れたり半ばに入れたりと無茶苦茶です;
このようなデータでも基本的に何らかの区切り文字があると思うのですが・・・
それはさておき、上記の条件では、電話番号の判断基準が無いのでマクロや関数では抽出できません。
例えば、文字列中の数字が最初に出てくる位置と最後に出てくる位置までの文字数がハイフンやカッコを除いて10桁のような判断基準が決まっていれば関数で対応することも可能です。
いずれにしろ、電話番号を判断するのは、エクセルにしろ人にしろ「数字」がポイントになるので、どのように記載されている数字を抽出したいのかを(複数ある場合は抽出したくない数字の例)などを、実際のデータ(特に電話番号部分)をそのままできる限り具体的に例示されたほうがより的確な回答が得られると思います。
No.4
- 回答日時:
電話番号以外のデータがきちんとリスト化された物があるなら話は別ですが、現状ではNo.2の方の仰る通り、「人間って素晴らしい」なんです。
遊びでマクロを作ってみました。
A1:A5の文字列から、数字の塊を切り分け、一番大きな塊が5個以上連続した数字であれば電話番号として抜き出し、隣のセルに表示しています。
電話番号っぽいものが無いときは「?」を表示します。
マクロ等は判らないとのことですので説明は省略しますが、このマクロも局番の区切りに「-」を使われるとOUTだったりして完璧なものではありません。
Sub PhoneNum()
Dim RE
Dim r As Range
Dim nOff, sTarget, sString, nAns, aAnsLen, i
Set RE = CreateObject("VBScript.RegExp") '正規表現使用
For Each r In Range("A1:A5") '対象データ
nOff = 1 '何列右側に電話番号を表示するか
sTarget = StrConv(r.Text, vbNarrow)
sTarget = Replace(sTarget, "-", "") '「-」を削除して電話番号を5個以上連続した数字に
RE.Pattern = "[^0-9\n]|^\n"
RE.Global = True
sString = RE.Replace(sTarget, ",") & ","
sData = Split(sString, ",")
nAns = 0
nAnsLen = Len(sData(0))
For i = 1 To UBound(sData)
If nAnsLen < Len(sData(i)) Then
nAns = i
nAnsLen = Len(sData(i))
End If
Next i
'5個以上連続した数字の塊があれば、電話番号として表示
If nAnsLen >= 5 Then
r.Offset(0, nOff) = "'" & sData(nAns)
Else
r.Offset(0, nOff) = "?"
End If
Next
End Sub

No.3
- 回答日時:
完全自動というわけにもいきませんが、以下の方法を参考までに。
エクセルの中身をワードにコピーする。
車の年式・車名・担当者・電話番号の、各項目の間にTabを挿入する。
それをエクセルに戻すと、項目毎にセル分けされる。
あとは電話番号を拾っていく(別セルに移動)。
一つのセルに書き込まれている電話番号だけを拾うより、わずかながらマシになると思います。
No.2
- 回答日時:
質問の状況では無理です
質問者が ここが電話番号だ と判断するロジックを全てマクロプログラム化するしかありませんが、それでもカバーできるのは9割行けば上出来でしょう
試みにその列に書かれていることから 電話番号を抽出する判断基準を箇条書きにしてみることです
そして、その書いた判断基準だけで 電話番号に該当するものを抜き出してみることです
そのくらい 人間は優秀なのです
不用意にそのようなデータ形式を設計したことが諸悪の根源です
数百データなら バックアップを取り 目で見ながら別の欄に電話番号を入力するのが 一番速くできるでしょう
または CSV出力し、それを空白区切りで読み込み、うまくいかなかったデータを手修正する
バックアップを取っておいて、いろいろ試みると良いでしょう
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- 警察・消防 警察から私の家族が駐車違反をして通行の妨げになっているのでその持ち主である私の祖父の連絡先を教えろと 5 2022/09/20 13:50
- 消費者問題・詐欺 悪質リサイクル業者からの迷惑電話に非常に困ってます。 悪質リサイクル業者は今年6月に入ってからいろん 5 2022/06/22 19:16
- X(旧Twitter) Twitterの電話番号の登録に関する質問です。 2 2023/04/01 08:40
- docomo(ドコモ) ドコモショップで、タブレットの電話番号のみ、借りられますか?(もしくは他社の携帯ショップでも) タイ 4 2023/06/24 15:38
- YouTube Youtube投稿について 1 2023/03/28 15:24
- その他(悩み相談・人生相談) 私はバツイチなんですが 元旦那と別れて 一年たちます。 4ヶ月前から 彼氏が出来ていて 来年には 結 7 2022/06/25 00:52
- Yahoo!メール Yahooメールにログインできません 2 2022/12/12 07:46
- LINE 電話番号をへんこうしたいのですが、、 2 2022/12/14 15:46
- LINE 携帯電話番号を変更したいのですが... 1 2022/12/14 00:50
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
steamの電話番号承認のメールが...
-
なりますためという日本語
-
電話番号を変えても迷惑電話が...
-
小机駅の電話番号教えてください
-
急ぎです。ヤフーIDが取得でき...
-
相手に自分の情報を知られずにS...
-
Asahi-it か 旭テレコムの連絡先
-
ACCESSでステータスバーにイン...
-
今まで相手にショートメール出...
-
質問失礼します。 賃貸の審査に...
-
電話が知らない電話番号からか...
-
iPhoneⅩでショートメールのやり...
-
0112053323ってどこの番号でしょう
-
電話番号のショートメールに架...
-
+804‥‥‥ とはどんな電話番号で...
-
「今日電話するね」で電話して...
-
電話で、4.5回程コールがなって...
-
携帯電話留守電でいきなり切っ...
-
掛けてないのに相手に着信が(謎)
-
職場に変な電話が…。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
steamの電話番号承認のメールが...
-
なりますためという日本語
-
電話番号を変えても迷惑電話が...
-
風俗の会員登録って電話番号が...
-
旧友に電話をかけ、この電話番...
-
小机駅の電話番号教えてください
-
ご連絡先電話番号とは?
-
相手に自分の情報を知られずにS...
-
NHK受信料を4月から払ったつも...
-
PAYPAL(ペイパル)に加入したい...
-
ZARAの電話番号はつながらない...
-
携帯の電話の履歴に登録してい...
-
エクセル2007電話番号だけを抜...
-
Googleでこの電話番号は確認に...
-
間違い電話をしてしまい相手が...
-
携帯の電話番号だけで警察など...
-
+からはじまる電話番号からか...
-
岡山のヘアサロンについて・・・
-
【Excel VBA】行単位での重複チ...
-
ねんきんネットに登録する電話...
おすすめ情報