• ベストアンサー

excelで"末尾に特定の文字列を含まない"行を削除したい

excelでセル末尾に特定の文字列を含まない行を削除したいのですが、どのようにすればいいのでしょうか。 実際の書類はA列のみにずらっとメールアドレスが3万行並んでおり、この中には不完全なメールアドレス"hoge@hoge.jp.ne"等があるため、一般的な末尾に来るべき文字列".jp" ".com" ".net" などが末尾にないセルを削除したいです。また、"hoge@hoge@hoge.jp" というアドレスも存在するため、"@"が2個以上含まれたセルも削除できると助かります。 マクロの実行方法はわかりますが勉強不足で書き方がわかりません。我が儘ですが、お知恵を拝借いただけると幸いです。よろしくお願い致します。

  • qoozy
  • お礼率73% (31/42)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

B1セルに =OR(RIGHT(A1,LEN($D$1:$D$3))=$D$1:$D$3)*(LEN(SUBSTITUTE(A1,"@",""))=LEN(A1)-1) [Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる) タイトルをつけて1のみ抽出する。添付図参照

qoozy
質問者

お礼

ありがとうございます、できました! 恥ずかしながら配列数式というものを初めて知りました。マクロなど使わなくてもできるのですね。怪しいアドレスがうようよ出てきて非常に助かりました。ありがとうございました!

その他の回答 (1)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

■一般的な末尾に来るべき文字列".jp" ".com" ".net" などが末尾にないセル =SUMPRODUCT(RIGHT(A2,MAX(LEN($X$1:$X$10),1)=$X$1:$X$10)*1) X1:X10に".jp" ".com" ".net" などを記入して上記の結果が0の行を削除する。 ■"@"が2個以上含まれたセル =(LEN(A2)-LEN(SUBSTITUTE(A2,"@",""))>1 上記の結果がTRUEの行を削除する

qoozy
質問者

お礼

ご指導ありがとうございます。早速試してみましたがなぜかエラーでできませんでした。「数式を計算できません。開いているブックに循環参照がありますが、この場合、循環参照は表示されません。」と出てしまいました。この数式をB列のセルに入れてみたのがいけなかったのでしょうか。"@"の方もなぜか全てFALSEになってしまいました。mac版excelなのが悪いのかもしれません。質問にその旨記載するべきでした。申し訳ございません。ご回答ありがとうございました!

関連するQ&A

  • 特定文字列以下のセル削除

    こんにちは。 特定の文字列を含むセルから5行削除するマクロを作りたいのですが、 どのようにするとよいでしょうか。 特定文字列は、各列に1つあり、行の位置はバラバラです。 その特定文字列を含み以下5行分のセルを削除し、上に詰めたいと考えています。 初心者ゆえ、ご指導ください。

  • エクセルで特定の文字が含まれる行から特定の文字が含まれる行の削除方法

    エクセルで特定の文字が含まれる行から特定の文字が含まれる行の削除方法 表題のとおりですが、エクセルで特定の文字が含まれる行から特定の文字が含まれる行の削除方法について教えてください。 特定の文字(C列にあります)が含まれている行から5行下の先ほどとは違う文字(これもC列にあります)までを削除したいのです。 それがたくさんあり大変困っております。 エクセルを起動してマクロの記録を行い手作業で5回削除し記録終了としたのですが、 5回以上削除したい場合は操作が行われませんでした。 これをマクロで行うにはどういう式を作ればいいでしょうか? 宜しくお願いします。

  • エクセルマクロ 特定の文字列を含む行を削除

    エクセルマクロ 特定の文字列を含む行を削除 エクセルのマクロについて教えてください。 下の中から列を限定せず、すべての行でAAA、CCCのいずれかがある場合、 その行ごと、すべて削除したいのです。 時に削除したい特定の文字列が数十種類になるため、 マクロ起動時に削除したい特定の文字を記述したファイルを読み込み、それから 削除できるようにしたいのです。場合によってはそのファイルを編集し、 削除したい文字列を変更したいのです。 ご教示いただだけないでしょうか A列 B列 C列 1 AAA BBB CCC 2 BBB CCC FFF 3 DDD BBB FFF 4 AAA CCC DDD 5 GGG RRR UUU 行中にAAA、BBBがある場合、削除したい ↓ A列 B列 C列 5 GGG RRR UUU マクロを実行し、上記の結果にしたい。

  • 特定文字列を含まない行を削除

    以前特定文字列を含む行を削除する方法の質問をし、正規表現を置換することでできることを知りました。^.*特定の文字列.*\n 今度は特定文字列を含まない行を削除を削除したいです。 この場合どう記述すればいいでしょうか? また、特定文字列1と特定文字列2のどちらかを含まない行を削除する方法もあわせて知りたいです。

  • エクセルで特定の行を削除したいのですが。

    エクセルで特定の行を一発で削除したいのですが、やり方がわかりません。 どなたか詳しい方お教えいただけませんでしょうか? やりたいことは、B列に、特定の文字が有れば、その行全部を削除して上方向にシフトしていきたいのですが、マクロとかを使うのでしょうか? 宜しくお願いいたします。

  • エクセル 特定文字列のある列の削除と保存

    こんにちは いつもお世話になっています。 エクセル2010です 1行目に文字列が入力されています。 (1)1行目に特定文字列を含む列を削除するマクロ。 (2)1行目に特定文字列を含む列だけを残して、他はすべて削除するマクロ を教えてください。 2つ質問するのが不適当ならどちらか一方でも構いません。 指定したい文字列は複数ありますので「文字列A、文字列B、・・・」等で追記できる形だと助かります。フォーマットが決まっているので指定文字列を頻繁に変えることはありません。 特定行を削除するマクロはネット上でヒットしたんですが、列は見つかりませんでした。 マクロ記録で、文字列検索、列削除をしましたが、連携のさせ方がわかりません。 よろしくお願いします。 Sub Macro1() ' ' Macro1 Macro ' ' Rows("1:1").Select Selection.Find(What:="あ", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, MatchByte:=False, SearchFormat:=False).Activate Selection.FindNext(After:=ActiveCell).Activate Columns("A:A").Select Selection.Delete Shift:=xlToLeft End Sub

  • エクセルで30万行から特定の行を削除したいのですが。

    エクセルで30万行から特定の行を一発で削除したいのですが、やり方がわかりません。 どなたか詳しい方お教えいただけませんでしょうか? やりたいことは、B列に、特定の文字が有れば、その行全部を削除して上方向にシフトしていきたいのですが、マクロを使うのでしょうか? また、マクロを使う場合、どの位時間がかかりますでしょうか?行数が30万行ありますので。(PCのスペックは、Core2Duo 1.40GHz/メモリ3GBです) 宜しくお願いいたします。

  • エクセルの文字列で末尾から任意の?番目の1文字を抜き出したい

    一つのセルに「あいうえお」と入力されているとして たとえば末尾から2番めの「え」だけ他のセルに抜き出したい とか 末尾から3番目の「う」だけを抜き出したいと考えています 文字列の文字数は様々で(そんなに多くないです) 末尾から?番目は常に任意で指定したいのです 皆様のお知恵を拝借したいのですが どうぞ宜しくお願いいたします

  • マクロで特定の文字を含む行を削除の方法

    マクロについて教えてください。(初心者です) B列にある、特定の文字(ランダムに複数の文字あります)がある場合、その行ごと削除 するマクロを教えてください。 例えば、 <B列> 2015-001 2015-002 2015-003 2015-004 と、数値があります。 2015-0002 2015-0003 の行を削除したいです。 削除対象の文字はランダムに40こほどあります。 宜しくお願いします。

  • エクセルで特定の文字列が入った行を非表示にしたい

    エクセル(97)で特定の列のセルに特定の文字列が入った行を非表示にする機能はありますでしょうか? 例えばC列の3行目以降から「無し」という文字列が入ったらその行を非表示にしたいのですが・・・

専門家に質問してみよう