• ベストアンサー

EXCEL2003で三つ以上の条件でフィルタ

EXCEL2003でオートフィルタを使用すると、一つの列に対し、二つの条件までしか設定できません。 三つ以上、具体的には、「A」を含む 又は 「B」を含む 又は 「C」を含む…といったようなフィルター設定をしたいのですが、 これをVBAなどでできませんでしょうか。 2007なら可能なのは分かっているのですが、会社のPCの為2003しか使えません。 よろしくお願いします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

データ→フィルタ→フィルタのオプション設定をお試し下さい。

shibisei
質問者

お礼

フィルターオプションを使用することはなかったのですが、確かに希望通りのことを実行できました。これをマクロにも組み込めるようなので、目的の処理ができるようになりました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

エクセルのフィルタをしきりに出しているが、、 それなら、オートフィルタやフィルタオプションの設定のマクロの記録を修正とかになるでしょうが。 ーー VBAでやるなら、他の方法もあるよ。 フィルタのように操作とは手順が違うが。 下記での sd dfg we をどう取り込むかの問題があるが。 Sub test01() d = Range("a65536").End(xlUp).Row k = 2 For i = 1 To d p = InStr(Cells(i, "A"), "sd") If p <> 0 Then Cells(k, "F") = Cells(i, "A") k = k + 1 GoTo ext End If p = InStr(Cells(i, "A"), "dfg") If p <> 0 Then Cells(k, "F") = Cells(i, "A") k = k + 1 GoTo ext End If p = InStr(Cells(i, "A"), "we") If p <> 0 Then Cells(k, "F") = Cells(i, "A") k = k + 1 GoTo ext ext: End If Next i End Sub Findメソッドを使う、ワイルドカードを使うなどの方法もあるが 原始的な方法もある。 例データ asdf wersddf fgwaer wsdfgh qqwrty 下記を含む行を抜き出し sd dfg we 上記を両方該当するとき2回書き出しを避けるのがポイント。 結果 asdf wersddf wsdfgh

shibisei
質問者

お礼

ありがとうございます。ただ私には高度すぎてよく分かりません。 フィルタオプション使用した方が、コンパクトにまとめられそうですし、そちらを採用したいと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

項目名 ="=*A*" ="=*B*" ="=*C*" という条件を表とは別に設定 「データ」「フィルタ」「オートフィルタ」で リストの範囲の元の表の範囲 条件範囲に上記の項目名と条件の範囲 でOKしてみてください。

shibisei
質問者

補足

すみません、意味がよく分かりません。 「データ」→「フィルタ」→「オートフィルタ」をしても、フィルターモードになるだけで、 ・リストの範囲の元の表の範囲 ・条件範囲に上記の項目名と条件の範囲 を指定するボックスは出てきません。 理屈的にはフィルターオプションと同じように感じられますが、いかがでしょうか。

全文を見る
すると、全ての回答が全文表示されます。
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

VBAでもエクセルの機能に無いことはできません。

shibisei
質問者

補足

デフォルトに無い機能でもVBAならできることもあるでしょう。 例えばユーザー定義関数のように。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

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

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

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

  • エクセルのオートフィルタ 列をまたいだ「or」設定方法

    エクセルのオートフィルタの機能で,数値が沢山打ち込んであるシートで,例えばA列50以上,B列40以上,C列100以上などをオートフィルタオプションを使って設定すると,表示される行はA列50以上かつB列40以上かつC列100以上となってしまいますが, 「かつ」ではなく「または」で表示させることはできないのでしょうか? A列50以上またはB列40以上またはC列100以上の行を表示させたい。 列のなかの「or」ではなく,列をまたいだ「or」の設定方法教えて下さい!

  • EXCEL2000 オートフィルタで。。

    お世話になります EXCEL2000 です。 やりたいことは、例えば A列に(もちろん縦に)A,B,C,D,E,F,Gとデータが並んでいたとして、その中で、B,C,Dのデータだけを抽出したい場合はどうしたらいいのでしょう?? オートフィルタでいいでしょうか? データ→フィルタ→オートフィルタで、▼をクリックし、 オプション画面がありますが、[or]だと、2つのデータしか抽出できないようになっていて・・・(涙 しかたがないので、白い入力欄に、,(カンマ)で区切って B,C,Dというふうに入れてみましたが うまくいきませんでした。。。 どうすればいいでしょう?

  • Excel2010重複しないカウントとフィルタ結果

    Excel2010で、重複しない文字をカウントしつつ、オートフィルターで 抽出をかけた時には表示したデータをカウントする関数を作成したいのですが うまくできません。 作成しているExcelの表には、オートフィルターが設定されています。 A列には複数名の人の名前が入っていて、名前には重複もあります。 オートフィルターでの抽出条件が指定されていない状態で A列の重複しない人数を下記数式で出しています。  =SUMPRODUCT(1/COUNTIF(A1:A100,A1:A100)) オートフィルターで、例えばA列で3人の名前を抽出した場合に、 上記数式が入っているセルに「3」と表示をさせたいのですが できますでしょうか? できれば作業列を使用することなく、ダイレクトに該当セルに算出できる方法が あれば知りたいです。 お分かりの方いらっしゃいましたらご教示頂けると助かります。 どうぞよろしくお願いいたします。

  • EXCEL2000のVBAでオートフィルタの条件について

    いつもお世話になります。 VBAでオートフィルタの条件を、4/1~4/30まで指定する時に、 AutoFilter Field:=1, Criteria1:=">=2003/4/1", _ Operator:=xlAnd, Criteria2:="<=2003/4/30" というような式になると思うのですが、この日付の条件「>=2003/4/1」と「<=2003/4/30」をあらかじめシートのA1とB1セルに入力しておき、 AutoFilter Field:=1, Criteria1:="A1", _ Operator:=xlAnd, Criteria2:="B1" としたいのですが、このままでは、当然検索条件自体が「A1」「B1」となってしまいますよね。。。 セルを指定することって、できますでしょうか? 宜しくお願いします。

  • EXCEL2003 VBA オートフィルター解除

    お世話になります。 EXCEL2003を使用しています。 10列ほど項目が並んだEXCELシートがありますが、このシートを開いた時にオートフィルターを10列すべての項目でオートフィルターを解除する仕組みをVBAで構築したいのです。 EXCEL2007ではオートフィルターモードという便利なプロパティがあるようですが、EXCEL2003で一括でオートフィルターを解除する方法を知りたいです。 (私以外のユーザーがオートフィルターをかけている時がよくあるので) どなたかお知恵をお借りできませんでしょうか? よろしくお願い致します。 環境 Windows XP SP3 EXCEL2003

  • エクセルVBA オートフィルタについて

    オートフィルタは2つまでしか条件が設定できません。 3つ以上設定する方法はないでしょうか?(OR条件です) オートフィルタの引数(Criteria)は2つしかありませんから、恐らく3つ以上の設定はできないと思っています。 そこで、オートフィルタを複数回設定し、使っていない列に特定の文字(例えば○など)を入れ、最後にこの○を条件にすることにより、実質的に3つ以上条件のフィルタリングを実現させたいと考えております。 そこでお聞きしたいのは、各条件でフィルタリングした時に、任意の列に○を入れる方法です。 例えば myRng.AutoFilter Field:=4, Criteria1:="=?UA*" でフィルタリングしたエリアの特定の列に○を入れるにはどのようなVBAになるのでしょうか? オートフィルタを使わず、ループで全行の条件を聞いて、○をつけることは可能ですが、行数が非常に多いので時間がかかってしまいます。 オートフィルタを使えばすばやく該当行が選択されますので、何とかこれを利用したいと思っています。何か良い方法は無いでしょうか? よろしくお願いします。

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

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

  • Excelの3つ以上の種目にフィルタをかけたい

    Excelにて例えば、 A... A... B... C... C... D... D... D... というリストがあった場合、オートフィルタの設定で、例えばA,B2つに関してのレコードは絞り込めるのですが、例えばA,B,Dなど3つ以上の絞込みはどうすればよろしいでしょうか? すみませんが、詳しい方、よろしくお願いします。

専門家に質問してみよう