• 締切済み

Excel:NGキーワードリストでフィルターしたい

お世話になります。 添付のように、B列にキーワードがあって(実際には1万くらい) E列にNGワードリスト(100個くらい)があります。(実際にはE列ではなく別シート) B列の中で、E列のNGワードリストに該当するキーワードがある行を削除したいです。 そのため、NGワードに該当する場合は、C列に 例えば 「1」と記入し、 あとで、フィルターで「1」が含まれる行を削除しようと考えております。 上記を実行する最適な関数をご指導頂きたくお願いします。 VBAは自分では使ったことはありません。

みんなの回答

回答No.5

NG ワードへの該当の有無を記録として残しておきたい場合は、COUNTIF 関数などで抽出してもいいです。 しかし No.4 さんが回答されているフィルタオプションであれば一発で終わるので、基本的にはこちらをお勧めします。ベストアンサーは辞退します。 初級レベルの VBA でもできますが、質問文にある処理だけを実行して終わりなのであれば、VBA は特に必要ありません。 フィルタオプションに限りませんが、削除されたデータは、残りません。必要に応じて、元データのバックアップを別シートにでも取っておくとよいかもしれません。 フィルタオプションの挙動・使い方について、若干、補足します。 抽出後、単に不要な部分を削除すれば、表示されている行のみが削除され、非表示の部分は残されている状態になります。この非表示を解除するには、「データ」タブの「並べ替えとフィルタ」グループにある「クリア」ボタンを押します。非表示の範囲の行番号を右クリックして「再表示」するわけではないので、お間違えなきよう。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.4

>NGキーワードリストでフィルターしたい 右の表の「NGワード」と書いてあるセルに、左の表と同じ「キーワードリスト」と記入(実際は左の表のセルからコピーして貼り付ける) 改めて左の表のシートを開いてから、 ご利用のエクセルのバージョンがご相談に書かれていませんが、データタブのフィルタグループの中から「詳細設定」を開始 (エクセル2003以前では、データメニューのフィルタから「フィルタオプションの設定」を開始)  抽出先は選択範囲内を選択  リスト範囲は左の表のセル範囲を設定  検索条件範囲は右の表の「キーワードリスト」と記入したセル以下(旧NGリスト)のセル範囲を設定 そしてOKすると、NGリストに該当する行を一発で抽出できます 必要に応じて選択して行削除する等で消去します。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter3.htm

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.3

>上記を実行する最適な関数をご指導頂きたくお願いします。 IF関数とCOUNTIF関数で数式を構成すれば良いでしょう。 C2=IF(COUNTIF(E:E,B2)>0,1,"") C2を必要数下へコピーしますがオートフィルで10000行の処理は面倒なのでコピー&ペーストで実行することをお勧めします。 C2セルを選択してコピーし(クリップボードへ保存)、B2セルに移動してCtrl+↓キーでB列の最下行へ移動します。 同じ行のCセルへ移動してCtrl+Shift+↑キーでC1セルまで選択し、Shiftを押しながらC3セルをクリックすると目的のコピー先を選択できます。 そこで貼り付けを実行すれば完了です。 C列に1がある行をフィルターで選択し、削除すれば目的通りになるでしょう。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

データがNGリストに含まれているかどうか判定するなら、以下のようなCOUNTIF関数を使うのがお勧めです。 =COUNTIF(NGリスト範囲,B2) NGリストにない場合に0を表示しないのであれば以下のようしてください。 =IF(COUNTIF(NGリスト範囲,B2),1,"")

  • yumi0215
  • ベストアンサー率30% (1335/4411)
回答No.1

VLOOKUPで該当するものに「1」を入れフィルターで「1」のものだけ削除 終了後関数を削除する エラーコードが出ても検出するためだけのものなのでこれでいかれると思いますよ。

関連するQ&A

  • excel2007 フィルタオプションがおかしい?

    excel2007にて、1800行ほどの企業リストAと、400行ほどの企業リストBを照らし合わせ、電話番号が重複している企業を削除したいと思い、フィルタオプション(詳細設定)を実行しましたが、重複しているものがあるにも関わらず、「1800レコードのうち0レコードが見つかりました」となります。 操作方法は以下の通りです。 ・企業リストAにてフィルタ→詳細設定→リスト範囲($A$1:$P$1800)→検索条件範囲(Sheet1 (2)'!$A$1:$A$494)→実行 企業リストAのA列、リストBのA列は共に「電話」というタイトル、それぞれの列は昇順で並び替えをしています。 何がおかしいのでしょうか。

  • Excel オートフィルタのリストを取得したい

    ExcelのVBAです。 オートフィルタの▼をクリックすると、 重複していないリストが出ます。 このリストを列ごと(指定列)取得したいです。 できれば、Functionで組み、 配列に格納し、使いたいと思っています。 戻り値で配列は出来なかった気がしますが、 どうでしょうか… やりたいことをまとめます。 ---------------------- Call オートフィルタリスト("A") 配列をリストボックスに表示 選択し、上下の配置などを変更できるように (Excelも連動し、2行目と3行目の位置を変更したりすることができる) 新規追加 そのリスト最終行に新規データを入力 そして、それをExcelにも反映 ------------------------ Function オートフィルタリスト(指定列) 配列定義 指定列の範囲選択 オートフィルタのリストを配列に格納 (重複は削除します) 配列を返します。 End Function ------------------------------ まとめるどころか余計ぐちゃぐちゃした気もしますが、 回答よろしくお願い致します。

  • オートフィルタを変更しフィルタ付け

    Excel2000使用。 今あるシートに縦が3段目(行カラムが3から始まる)から横にA列からH列までの表があり、 その内6つの列A、B、C、D、E、F列にオートフィルタでフィルタをつけています。 このうちB,Dのフィルタを削除したいのですが、うまくいきません。 とびとびでかけることは可能ですか?(A,C,E列のみフィルタかけ) そのための操作を教えてください。

  • Excel 複数セルから文字列の検索、表示

    エクセル初心者です。 過去のものを探しては見ましたが、うまくキーワードを見つけられなかったので 質問させてください。 リストで次のようなものがあるとします。  A   B  C  D  E  F  G 1○ 12 45 - 98 - 2■ - - 12 - 06 3◇ 35 12 01 99 - 4× - - - - 12 5☆ 08 61 20 12 - このリストで各行ごとにB~F列のセルにある「1」で始まる文字列を検索して 該当する文字列をG列に表示する方法はありますでしょうか? 関数とかVBAについては???なので、わかり易くお教え頂けると助かります。 よろしくお願いいたします。

  • Excel2007のオートフィルタ機能について

    対象ソフト:Excel2007 オートフィルタで絞ったデータを「数値と値のクリア」でクリアすると、絞ったデータのみがクリアされるはずが、絞ってしないデータまでクリアされてしまうことがあります。 見つけたのは以下のパターンです。  A B C D E F 1  ● 2  ×  3 ● 【現象が出るケース】 1.先頭行にオートフィルタを設定 2.オートフィルタでB列の●を選択 3.●のセルを選択し、「数値と値のクリア」を実行 ⇒B1~B3までのデータがすべて消えてしまいます。 【現象が出ないケース】 1.先頭行にオートフィルタを設定 2.オートフィルタでB列の×を選択、個数を確認します 3.オートフィルタでB列の●を選択 4.●のセルを選択し、「数値と値のクリア」を実行 ⇒B2の×は残っています。 この現象は故意的なのでしょうか? それともバグなのでしょうか? どちらにしても、パターンを覚えておかないとデータを操作する際に、正確なリストを作成できずに困っております。 解決法や良い対処策があれば教えてください。

  • Excel2013-フィルターをかけた状態でコピペ

    フィルターをかけた可視セル上でのみ作業したいとき、コピー&ペーストの方法はありますか? エクセルでフィルターをかけて、1行目・5行目・10行目が見えています。 A列の上から3行をドラックしてコピーすると可視セル(A1・A5・A10)のみ選択されますが、それをB列1行目に貼り付けると、可視セル上の2行目・3行目(実際の5行目・10行目)から消えてしまいます。 フィルターを外すとB2・B3がA5・A10の内容に上書きされています。 可視セル上でのドラッグ+コピーは出来るので、 可視セル上でそれを”ペースト”出来ると便利なのですが、方法はありますか?

  • Excel2007のフィルタ

    宜しくお願い致します Excel2007を使用しています 例えば、A3に月日 B3に商品名 C3に単価 D3に数量 E3に金額 と入れてあります これにフィルタを付けたいのですが、A3を選択してフィルタボタンを 押すとA3からE3すべてにフィルタが表示されますが、自分の好きな列 のみに付けることが出来ますか、 例えば、A3とC3とE3にのみ付けたい場合、色々と挑戦していますが??です 一つの列には付けることが出来ますが二つ目を選択すると、一つ目が 消えてしまいます どうでもしなくてはいけないと言う事はありませんが出来るものならばと思い質問しました。

  • Excel2007 オートフィルター上手くいかない

    ご存知の方ご教授下さい。 A列~J列まで、300行程のリストがあります。 A列には、「い型」「ろ型」「は型」などの型番があり、それをフィルターをかけたいとします。 通常、A列をオートフィルターで「い型」と選択すると 「い型」だけが抽出され、B列~J列は「い型」に付随するデータだけが見えると思います。 しかし、手持ちのデータで同様の事を行うと、何らかのフィルターがかかるものの なぜか「い型」以外の「ろ型」「は型」も抽出されます。 上段は「い型」が続くのですが、半分ぐらいから「い型」「ろ型」「は型」が混在します。 このデータは、A列に空白は存在しませんが B~J列には、空白が存在します。 それが影響しているのでしょうか? 下手な説明で恐縮ですが、解決法がありましたらご教授下さい。 宜しくお願いいたします。

  • Excel2010 フィルタで抽出できない

    Excel2010(WindowsXP)のフィルタ機能で抽出できない場合があるようなのですが そういうものでしょうか? 以下のような10000行以上の重複しない14桁のデータで 10000行目の前後に空白セルがある場合 フィルタでB列の「10000000010003」以降のデータが抽出できません。 左からA列、B列 a b 1 (空白セル) 2 10000000000002 3 10000000000003 4 10000000000004 5 10000000000005 (この間も連続データ) 9997 10000000009997 9998 10000000009998 9999 10000000009999 10000 10000000010000 10001 10000000010001 10002 10000000010002 10003 10000000010003 10004 10000000010004 10005 10000000010005 10006 10000000010006 10007 (空白セル) 10008 10000000010008 10009 10000000010009 10010 10000000010010 ---

  • Excel フィルタした値をセルに表示する関数

    図のような表をつくり、表にはテーブル書式を設定しています。 B列で社名でフィルターをかけると、C列、D列の数値の集計は、SUBTOTAL関数(109)で行っており、フィルターをかけた最終行にその集計数値が表示されます(下部画像のようになる)。 ついでに、B列の最終行に、フィルターをかけた値(ここでは文字列の"あいう会社")を表示させたいのですが、どの関数を使えばよいのかわかりません。 フィルターに使った文字列を抽出する関数、 あるいはフィルタした値は常にB列の上から2行目にくるので、 これを参照してB列の最終行のセルに表示させる方法 はあるでしょうか?

専門家に質問してみよう