エクセル メール管理 複数キーワードを省く方法

回答受付中の質問

エクセル メール管理 複数キーワードを省く方法

検索サイト等で調べてみたのですが
ちょっとわからなかったので
どなたかおわかりの方はお教えください。

メールのリストの中から例えば1万件の中から

その中から 特定のワード bank / fudousan / camara や@xxxxx.comといったキーワード20件以上を省きたいという場合
今までは
一つずつ bankを検索をかけて リストを出し
fudousanを検索かけ リストを出してといったように
20件省きたいワードがあれば20回検索しないといけなかったのですが
関数等をつかって 省きたいワードリストから
手早くメールリストから特定のアドレスを省きたい
もしくは省くように数値で代換するといった方法は
どのようにすればよろしいのか
知っている方いらっしゃいましたら教えてください。

なんとなくlook upやvlook upといった関数からできそうな感じはしたのですが、ちょっとよくわからなかったので
教えてくださいますと大変助かります。

投稿日時 - 2007-09-18 17:44:49

連想キーワード:

QNo.3356282

困ってます

2人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

回答(2件中 1~2件目)

ANo.2

#01です。
「省きたい」の意味は先の回答で合っていましたか。それであればマクロ(VBA)で検索キーワードを含む行を削除するようにしてみます。

以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。

キーワードは20個書けるようにしていますので、4行目~7行目を修正して下さい。キーワードは「,(半角カンマ)」で区切る必要があります。また対象のリストはA列にあることにしています。もし別の列なら12行目の
 Cells(rCnt, "A")
で "A" の部分を正しい列名に直して下さい

なおマクロの実行結果はUNDOで復活できません。実行前に必ずファイルのセーブを取っておいてください

Sub Macro1()
Dim keyword() As String
Dim idx, rCnt As Long
 keyword = Split("bank,fudousan,camera,@xxxxx.com,Keyword5" _
     & ",Keyword6,Kerword7,Keyword8,Keyword9,Keyword10" _
     & ",Keyword11,Keyword12,Keyword13,Keyword14,Keyword15" _
     & ",Keyword16,Keyword17,Keyword18,Keyword19,Keyword20" _
     , ",")
 Application.ScreenUpdating = False
 For rCnt = Range("A65536").End(xlUp).Row To 1 Step -1
  For idx = 0 To UBound(keyword)
   If InStr(Cells(rCnt, "A"), keyword(idx)) > 0 Then
    Rows(rCnt).Delete
    Exit For
   End If
  Next idx
 Next rCnt
 Application.ScreenUpdating = True
End Sub

VBAで行っても、5万行もあればそれなりに時間がかかります。マクロ実行がなかなか終わらなくても焦らないでください。どうしても途中で止めたかったら ESCキーを何度か叩くと止めることができます。

VBAならシートに関数を埋め込む必要がなくなるので、シートで入力操作を行っているときに動作が遅くなっていらいらするようなことはなくなります。関数を使うか、VBAを使うかはお好みだと思います

投稿日時 - 2007-09-18 19:43:42

お礼

zap35様
ご丁寧にご回答頂きましてどうもありがとうございます。
とても助かりました。

投稿日時 - 2007-09-19 13:38:16

ANo.1

A列に調べたい文字列が(1万行)あるとして、空いている列(例えばF列)のF1:F20に検索キーワード(bank,fudousan,camera…)を入力します

1行目の空き列に
 =IF(MIN(INDEX(FIND($F$1:$F$20,A1&$F$1:$F$20),))>LEN(A1),"×","○")
を貼り付けて下方向にコピーすると、検索キーワードがあれば「○」、なければ「×」が表示されます。
後はオートフィルタで「×」を抽出して、行をまとめて削除してください

ただし1万行もあると処理がかなり重くなるかもしれません。そのときはVBAの方が実用的ですね。

投稿日時 - 2007-09-18 17:59:40

お礼

どうもありがとうございます。
教えて頂きましたとおりに実行しましたら
エクセルの初心者の私でも出来ました。
どうもありがとうございます。
実際データは5万件以上あるので
もしお分かりで差し支えがなければ
VBAというやり方をご存知でしたら
どのようにやればいいかお教え頂けますと
大変助かります。よろしくお願い致します。

投稿日時 - 2007-09-18 18:43:15

あわせてチェックしたい
  • 手早く射精する方法 ...
  • あるキーワード言葉を省いてネットをするには ...
  • noname♯xxxxx って? ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら