• ベストアンサー
  • 困ってます

フィルタオプションでのデータ抽出に関して

お世話になります。 現在、約9000件あるデータの中から必要なデータを抽出できるようにするものを作成しています。 数式で抽出しようとしましたが、データ量の多さから計算に時間が掛る為、フィルタオプションを使ってデータを抽出しようと考えています。 データは下記のようになっています。 Sheet名:「積算データ」 項目 名称   適用   備考   施工  労務費 A    B     C     D     E     F 36  電線管  GP-19        隠ぺい  100 36  電線管  GP-22        隠ぺい  100 36  電線管  GP-28        隠ぺい  120 37  電線管  GP-16        露出   80 37  電線管  GP-22        露出   100 37  電線管  GP-28        露出   100 (以下、約9000行データが続きます) 別シートにデータ検索用シートを作っています。 シート名:「データ検索用」 名称 適用 備考 施工  A   B   C   D                   ←各セルに条件入力 さらに別シートにデータ抽出用シートを作っています。 シート名:「データ抽出用」 フィルタオプションの設定に関しては、 リスト範囲:積算データ!A1:F9000 検索条件範囲:データ検索用!A1:D2 抽出範囲:データ抽出用!A3 と設定しています。 というような構成なのですが、データ検索用シートで、各セルに条件を入力し(例えば、A列に電線管、B列にGP-19 D列に隠ぺいと入力)、データ抽出用シートにデータを抽出しても、積算データシート内のデータ全てが抽出されてしまいます。 検索条件どおりのデータを抽出するにはどうすればいいでしょうか??

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数317
  • ありがとう数3

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

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

こちらでExcel2002で検証してみましたが、全く問題なくフィルタオプションできます。 >一応マクロに記憶させてみましたが・・やはりできませんでした。。 今回の質問はマクロに全く関係ないと思うのですが、どのような目的でマクロに記録するのでしょうか? 確認ですが、表示用シートのA3セル以下にデータが入っていないシートで操作しているのですね。 もし、マクロを利用して連続して同じようなデータを抽出する必要があるなら、当然ですが、最初に表示用のシートのデータは削除しておく必要があります。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

申訳ありません。。事故解決する事ができました 原因は条件範囲にあったようです。 ここに書いたものと違い、条件範囲が1行広くなっていた為、空白セルも条件として認識され、「電線管」or「空白(無条件)」という処理になり、全データが表示されたようです。 御手数をお掛けして申訳ありませんでした。

関連するQ&A

  • データ抽出法

    一度似たような質問をしましたが応用がきかないので、教えてください。 Sheet1A列に入力されたデータ群を含むデータを別sheetから抽出したいのですがやり方がわかりません。 要は、Sheet1A列に10000件のデータが入力されているのですが、それらを含むデータを別シートから検索したいのです。(別シートで10000回検索しない方法が知りたいです。) よろしくお願いします。

  • データ抽出

    VBA初心者です。 エクセルで2枚のシートを練習用で作成しました。 画像上段がシート1で元データです。 下段が転記先の表で、シート2です。 シート2は、今はデータが参考に貼りつけてありますが 普段はマクロで作業後は消去して、空白にしています。 今したい処理が 元データをINPUTBOX関数を使って抽出し、 NO,購入日付、分類、感想、備考のデータを下段画像シート2のように 転記したいのです。 抽出条件のキーになるのは、主に「購入日付」と「分類」です。 どこかのセルに、日付を範囲指定で入力すれば、条件に当てはまる データをシート2に表示させたいです。 四半期ごとのデータを検索したいためです。 INPUTBOX関数でなくても、どこかの特定のセルに範囲指定する日付を入力 して、抽出してもかまわないです。 あと、分類は割と「飲料水」を抽出して、印刷する頻度が多いのですが 今後の参考に、全部の分類を抽出できるスタイルが望ましいです。 現在は、一行一行日付と分類を目視で確認しながら シート2にコピペ作業しているので 時間がかかります。 エクセルの機能でフィルタ等をしてみたのですが、 関数やVBAで素早くしたいのですが、なかなかコードが思いつきません。 お願いします。

  • エクセル2000フィルター抽出条件式について

    フィルター抽出条件がうまく抽出出来ません教えてください。 抽出条件式 別シートで作っている。(Bシート)  巡視日      巡視日 >=2002/05 <=2002/07 条件式の意味 2002年5月以上で2002年7月以下のデータを抽出する。 2002年5月以上のデータは抽出できるが、2002年7月が抽出されない 2002年5月と2002年6月しか出てこない。 データベース(Aシート) C列 巡視日 4月8日 5月11日 5月11日 6月5日 7月4日 7月4日 エクセル操作(データ→フィルター→フィルターオプション設定)で 検索条件範囲を 巡視日      巡視日 >=2002/05 <=2002/07 指定してやるとデータベース(Aシート)のC列の抽出が 2002年5月以上のデータは抽出できるが、2002年7月が抽出されない 2002年5月と2002年6月しか出てこない。 何故でしょうかよろしくお願いします。

その他の回答 (2)

  • 回答No.3
noname#204879

》 データ量の多さから計算に時間が掛る為、フィルタオプションを 》 使ってデータを抽出しようと考えています [フィルタオプションの設定]でも「データ量の多さから」は「計算に時間が掛る」のは避けられないけど、何秒以上を「計算に時間が掛る」とお考えなのですか?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

フィルタオプションでの抽出は1秒もかかりませんが、数式での抽出は5~10秒ほどかかり、動作も不安定な為、フィルタオプションによる抽出方法を採用しました。

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

例示のデータでフィルタオプションの設定を行ってみましたが、問題なく該当データのみ抽出されました。 確認ですが、例示のデータでは項目名の下に「A、B、・・・」などとありますが、この部分は実際は何も入力されていないのですよね。 この行が列番号をわかりよくするために記載したのではない場合は、この行を入れずにもう一度フィルタオプションの設定を行ってみてください。 #Officeソフトはバージョンによって使用できる機能や操作方法が異なりますので、質問の際には必ずバージョンを明記するようにしましょう。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

まさか思い新しくEXCELを立ち上げてそちらにデータをコピーしてからフィルタオプションをしてみたところできました。。。 よくわかりませんが、設定がおかしな事になっていたのかもしれません。 御手数をお掛けして申訳ありません。 ありがとうございました。

質問者からの補足

回答ありがとうございます。 バージョン表記を忘れていました。申訳ないです。 エクセルバージョンは2003になります。 項目下の「A」などは入れていません。項目の上に書いた方がわかりやすかったですね。。 誤解を招く書き方で申訳ありません。 一応マクロに記憶させてみましたが・・やはりできませんでした。。 以下記憶させたマクロです。 Sub フィルタ() ' ' フィルタ Macro ' マクロ記録日 : 2013/6/4 ユーザー名 : ' Sheets("積算データ").Range("A1:M8888").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Sheets("データ検索用").Range("A1:D2"), CopyToRange:=Range("A3"), _ Unique:=False End Sub

関連するQ&A

  • 重複するデータの抽出

    どなたか教えてください。 Sheet1A列に入力されたデータ群と重複するデータを 別sheetから抽出したいのですがやり方がわかりません。 要は、Sheet1A列に10000件のデータが入力されているのですが、それらと重複するデータを別シートから検索したいです。(別シートで10000回検索しない方法が知りたいです。) よろしくお願いします。

  • Excel_VB:条件を入れてデータ抽出

    別シートにあるデータベースを 特定のセルに抽出条件となるwordを入力すると別シートから情報を返すマクロを作成しています。 簡易的なコードがございましたらご教授ください。 何卒よろしくお願いいたします。 詳細 ▼検索条件の単語を入力するセル  1&#65374;3を複数条件で抽出   1_バンド名(B6) 2_曲名(B8) 3_アルバム名(B10) ▼別シートのデータベース 1行目はタイトルを入力しています。 バンド名(A列) 曲名(B列) アルバム (C列)    時間(D列) ジャンル(E列) メディア(F列) 備考(G列) ▼情報を返すセル バンド名(F15) 曲名(G15) アルバム (H15)    時間(I列) ジャンル(J15) メディア(K15) 備考(L15)

  • エクセル フィルタオプションで 特定の文字列を含む行を全て抽出する方法がわかりません

    エクセル2002を使用しています。 エクセルフィルタオプション設定で、特定の文字列を含む行を全て抽出する方法がわかりません。 たとえば sheet1    A    B    C    1 項目1 項目2 項目3  2  あ   い    う    3  う        あ    4  え        い 5      う       Sheet2   A         B         1 抽出文字列 2 あ  3   4 (計算式) 5 (以下抽出結果)   上記のようなデータがあり、sheet2!a5以降に「あ」が該当する行を全て抽出するといった式を組みたいのですが、 Sheet2 a2に抽出文字を入力し、a4に「=or(sheet1!a2=a2,sheet1!=a2,sheet1!=a2)」といった検索条件式を組み、フィルタオプションで、 ・リスト範囲 Sheet1!$a$1:$c$5 ・検索条件範囲 $a$3:$a$4 ・抽出範囲 $a$5  と指定するのですが、うまく抽出できません。 ちなみに抽出対象が文字列でなく数字なら(たとえばSheet1のデータの文字をあ→1 い→2のように全て数字に置き換えてSheet2!a2に1を入力)抽出できるのですが・・・ 文字列をセル参照して条件式を組む場合に何か気をつけることがあるのでしょうか?文章が長くなってしまい申し訳ありません。良い方法があればご教授お願いします。

  • エクセルデータ抽出方法を教えてください

    エクセルでのデーター抽出方法を教えてください、シート1:A1にUA1と入力し、シート2:A列にはUA1・・・・複数のデータが縦に並んでいます、シート1:A1に入力したデーターを元にシート2:A列を検索し該当するデータの抽出を行いたいです、VLOOKUPではうまく行きません教えてください

  • フィルターオプション

    エクセルで作ったデータで A列 氏名 B列 住所 C列 生年月日 と入力をし、生年月日から、特定月生まれのみ抽出したいのですが、オプションの条件の設定がわかりません

  • Excel フィルターオプションの設定について

    Excel2010を使っています。 データ表からデータを抽出するのにフィルターの「フィルターオプション」を使っています。 データ範囲の外側に抽出条件を入力するのですが、数値の範囲の条件の記述方法がわかりません。 条件に「>=50」や「<=200」は正常に抽出するのですが、50から200の範囲のデータを抽出するのに条件の書き方がわかりません。 「>=50」と「<=200」の2つを条件にするとすべてのデータが抽出されます。 教えてください。 宜しくお願いします。

  • フィルタオプション、複数行のデータを抽出したい

    こんばんは n数色から、表と裏にランダムに色を割り当てたデータが入力されているとします。 下記のような場合です。 A列 B列 表&#160; 裏&#160; 赤&#160; 白 赤&#160; 黄 赤&#160; 緑 黄&#160; 赤 黄&#160; 白 黄&#160; 緑 ・ ・ ・ (以下略) このとき、「表が赤」もしくは「裏が赤」という条件で抽出したいのです。 複数行の場合におけるデータ抽出法がわからず、どのように操作すればよいか教えて頂きたいです。 excel 2003です

  • Access2002のフィルタ機能について

    Access2002を使用しています。マクロのフィルタを使って抽出をしたいのですが・・・。 テーブル構造ですが 氏名    備考    備考2 ○○          &#13049; ××    B     &#13049; △△    A     &#13049; ◆◆    B というものがあります。 今したいのは 備考と備考2に条件をいれ抽出させたいのですが どちらにも条件が入るときは抽出されるのですが どちらか一方にのみ条件を入れた場合うまく抽出できません。 たとえば 備考2 で&#13049;を抽出とした場合。 氏名    備考    備考2 ○○          &#13049; ××    B     &#13049; △△    A     &#13049; 上記結果が必要なのですが 氏名    備考    備考2 ××    B     &#13049; △△    A     &#13049; 結果はこうなります。 フィルタの条件式は [テーブル]![備考2] Like IIf([Forms]![フォーム]![検索]=Null,"*","*" & [Forms]![フォーム]![検索] & "*") And [テーブル]![備考] Like IIf([Forms]![フォーム]![備考検索]=Null,"*","*" & [Forms]![フォーム]![備考検索] & "*") 元のテーブルにデータが入力されていないものが抽出で出てきません。 どーしたらよいのでしょうか??教えてください。

  • エクセル 大量のデータから抽出し自動表示

    エクセルのSheet1のC列に大量(3500件くらい)のデータがあります。このデータは毎日さらに増えます。D列にもおなじだけのデータがあります。 (E列・F列にはあとから別のデータをさらに入力していきます。) Sheet1 A B C D E F     1 2 3 4     2 3 4 5      1 3 5 6     3 5      2 4      ・ ・     ・ ・ こんな感じです。 今回、このC列に入っているデータを検索し、完全に一致したデータのみを別シートに抽出したいのです。 C列にはいろいろな数字が入っていて、同じものもありますが、D列にも同じ数字とは限りません。 なので、VLOOKUPは使用できないのかと思っています。 一致したデータはその行をすべて別シートに抽出したいです。 検索をかけて一致しないデータがあった場合もその検索した数字は残しておいてさらに今後一致になるまでデータを残しておくという方法はできますでしょうか。 エクセルは2003です。 よろしくお願いします。

  • フィルタオプションとシートの保護

    Excel2003を使用して、あるシートに以下の設定を行なっています。 (1) 「入力規則」のドロップダウンリストからデータを選択入力する設定 (2) (1)で選択入力されたデータを抽出条件にしたフィルタオプションを設定(抽出先は指定した範囲) (3) 「マクロの記録」で(2)の作業を記録し、作成したマクロにボタンを作りボタンを押すと抽出を実行するよう設定 ※シート1に元データがあり、シート2が問題のシートになります。 このシートを保護し、他者に変更されないようにしたいのですが、保護をしていると抽出ができなくなってしまいます。 オートフィルタなら有効にする設定があるようですが、フィルタオプションは有効に出来ないのでしょうか? 他のシートを抽出先にせず、これらを実行したいのですが…。 何か良い方法があればご伝授願います。 尚、今回マクロを設定してはおりますが、実際に自分で記述して書くほどの知識はありません。 もしもマクロを使用しなければならない場合はお手数ですが、その詳細も教えて頂ければ幸いです。 宜しくお願い致します。