人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルのデータで25000件のメールアドレスに不適な文字が含まれているアドレスを検索して取り除きたいのですが?抽出する方法を教えてください。


●質問者: inosisi
●カテゴリ:コンピュータ インターネット
✍キーワード:アドレス エクセル データ メールアドレス 抽出
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● toki-2131
●0ポイント

ひだりクリックしたらわかる


2 ● j4mika
●66ポイント

http://oshiete.goo.ne.jp/qa/1821256.html

エクセルのマクロの正規表現で出来ると思います。

メールアドレスが、A1:A25000にあるとすると、

No.2の

For i1 = 1 To 100をFor i1 = 1 To 25000にすることでそのまま使えないでしょうかね?

◎質問者からの返答

ありがとうございます。

25000行に設定してそれ以下でしたら空白行もエラーカウントしますが自動的に行認識すると良いのですが。


3 ● SALINGER
●0ポイント

VBAで例えば、A列にメールデータがあれば正規表現で判別し、不適な場合にB列に×を付けるマクロです。

Sub Macro()
 Dim obj As Object
 Dim lastRow As Long
 Dim i As Long
 
 lastRow = Cells(Rows.count, "A").End(xlUp).Row
 
 Set obj = CreateObject("VBScript.RegExp")

 obj.Pattern = "^\S+@\S+\.\S+$"
 For i = 1 To lastRow
 If obj.test(Cells(i, "A").Value) Then
 Cells(i, "B").Value = ""
 Else
 Cells(i, "B").Value = "×"
 End If
 Next i
 
 Set obj = Nothing
End Sub

4 ● SALINGER
●34ポイント

先の回答は正規表現が単純すぎました。これの方がまだ厳密です。

Sub Macro()
 Dim obj As Object
 Dim lastRow As Long
 Dim i As Long
 
 lastRow = Cells(Rows.count, "A").End(xlUp).Row
 
 Set obj = CreateObject("VBScript.RegExp")

 obj.Pattern = "[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$"
 For i = 1 To lastRow
 If obj.test(Cells(i, "A").Value) Then
 Cells(i, "B").Value = ""
 Else
 Cells(i, "B").Value = "×"
 End If
 Next i
 
 Set obj = Nothing
End Sub
◎質問者からの返答

できました。ありがとうございました。参考にさせていただきます。


5 ● infosupport
●0ポイント

ctrl+Fで不適切な内容を記載し、それで検索し除外とかはどうでしょうか?

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ