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

質問です
エクセルCSVで
Sheet1のA列の1行目からメールアドレスのデータがあります

Sheet2のA列の1行目からドメインの参照データがあります

Sheet2のA列の参照ドメインと同じものが含まれるメールアドレスを
Sheet1のA列のメールアドレスから抽出してその結果をSheet3のA列の1行目からコピーできるマクロまたは関数をお願いします

Sheet1 A列のデータ
aaaa@docomo.ne.jp
bbbb@ezweb.ne.jp
cccc@jcom.ne.jp

Sheet2 A列の参照ドメイン
docomo.ne.jp
ezweb.ne.jp

Sheet3 A列の結果
aaaa@docomo.ne.jp
bbbb@ezweb.ne.jp

よろしくお願いします



●質問者: inosisi
●カテゴリ:コンピュータ インターネット
✍キーワード:CSV DoCoMo EZweb ne.jp エクセル
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● きゃづみぃ
●70ポイント ベストアンサー
Sub main()
 If Worksheets("Sheet2").Range("A1") = "" Then Exit Sub
 If Worksheets("Sheet2").Range("A2") = "" Then
 e = 1
 Else
 e = Worksheets("Sheet2").Range("A1").End(xlDown).Row
 End If

 If Worksheets("Sheet1").Range("A1") = "" Then Exit Sub
 If Worksheets("Sheet1").Range("A2") <> "" Then
 kg = Worksheets("Sheet1").Range("A1").End(xlDown).Row
 End If
 
 If Worksheets("Sheet3").Range("A1") = "" Then
 kk = 1
 Else
 If Worksheets("Sheet3").Range("A2") <> "" Then
 kk = Worksheets("Sheet3").Range("A1").End(xlDown).Row
 End If
 End If
 
 For gg = 1 To e
 For b = kg To 1 Step -1
 chk = Worksheets("Sheet2").Cells(gg, "A").Value
 If Right(Worksheets("Sheet1").Cells(b, "A"), Len(chk)) = chk Then
 Worksheets("Sheet3").Cells(kk, "A") = Worksheets("Sheet1").Cells(b, "A")
 kk = kk + 1
 End If
 Next b
 Next gg

End Sub
◎質問者からの返答

上手く行きました。ありがとうございます。

手順としましては

1.データCSVファイルをエクセルで開く

2.Sheet1にデータsheet2に参照sheet3に答えの準備

3.マクロ実行

4.sheet3の答えをCSVで保存

エクセルCSVはありませんのでCSVをエクセルで開くという意味です

すみません素人判断です


2 ● km1981
●30ポイント

これでできると思います

Public Sub hatena()

Dim i1, i2, i3, n1, n2 As Integer

Dim adr As String

Dim ss As Variant

n1 = Worksheets("Sheet1").Range("A1").End(xlDown).Row

n2 = Worksheets("Sheet2").Range("A1").End(xlDown).Row

i3 = 1

For i1 = 1 To n1

adr = Worksheets("Sheet1").Cells(i1, 1).Value

If (adr <> "") Then

ss = Split(adr, "@")

flag = False

For i2 = 1 To n2

If (ss(1) = Worksheets("Sheet2").Cells(i2, 1).Value) Then

Worksheets("Sheet3").Cells(i3, 1).Value = adr

i3 = i3 + 1

i2 = n2 + 1

End If

Next i2

End If

Next i1

End Sub


でも1番の人がとても怖いので

1番の人にベストアンサーをあげてください

僕はいりません

◎質問者からの返答

ありがとうございます

「インデックスが有効範囲でありません」のエラーメッセージがでます

結果データも全部抽出していないみたいです

使用しているエクセルはMicrosoft Office Excel 2007です

データ100万件でテストしました

なにか原因がわかりましたらよろしくお願いします。

関連質問


●質問をもっと探す●



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