• 締切済み

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

検索サイト等で調べてみたのですが ちょっとわからなかったので どなたかおわかりの方はお教えください。 メールのリストの中から例えば1万件の中から その中から 特定のワード bank / fudousan / camara や@xxxxx.comといったキーワード20件以上を省きたいという場合 今までは 一つずつ bankを検索をかけて リストを出し fudousanを検索かけ リストを出してといったように 20件省きたいワードがあれば20回検索しないといけなかったのですが 関数等をつかって 省きたいワードリストから 手早くメールリストから特定のアドレスを省きたい もしくは省くように数値で代換するといった方法は どのようにすればよろしいのか 知っている方いらっしゃいましたら教えてください。 なんとなくlook upやvlook upといった関数からできそうな感じはしたのですが、ちょっとよくわからなかったので 教えてくださいますと大変助かります。

みんなの回答

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.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を使うかはお好みだと思います

mail123
質問者

お礼

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

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.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の方が実用的ですね。

mail123
質問者

お礼

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

関連するQ&A

専門家に質問してみよう