• ベストアンサー

1000社データの中から80社データを抽出したい

約1000社の契約件数3000件の表中から80社200件の契約件数データを抽出したいのですが、良い方法が見つかりません。80社の顧客コードを元に抽出したいのですが、オートフィルターやVLOOKUP関数では時間がかかり過ぎます。 そこで、マクロと思うのですが、どのような構文にすれば良いのでしょうか?ご教授下さい。全ての契約件数は顧客コードで紐ついています。よろしくお願いいたします。

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

  • ベストアンサー
  • tamiemon96
  • ベストアンサー率49% (658/1341)
回答No.1

表の形や、内容が分からないこと。 抽出の条件がどのようなものかわからないこと。 以上から、回答が付かないものと思います。 私が、よく使う方法を一つ。 【前提条件】 (1) 表がA列~E列まで使っていると仮定します。 (2) 選びたい条件が ア、イ、ウ と3つあるとします。 【方法】 ・ F列・・・チェック(ア)、G列・・・チェック(イ)、H列・・・チェック(ウ) とします。 ・ 例えば、アの条件が、C列が100以上だと、    F2に =IF(C2<100、0、1)    の算式を入力します。    Cが100以上なら1、未満なら0 という式です。 ・ 同様に、G列、H列にも、条件を満たせば1、だめなら0 のIF関数式を入力します。 ・ すべての条件にあうためには、   I列に =F2*G2*H2    これで、答えが1なら条件を満たし、0なら条件を満たしません。 ・ 一つでもあえばいいなら、   I列に =F2+G2+H2    これで、答えが1以上なら、いずれかの条件を満たしています。 あとは、F2からI2を表の一番下までドラッグコピーすればOKです。    

ibarakikenmin
質問者

お礼

tamiemon96 様、早速にご回答をいただき深謝申し上げます。 これまでこんなに大量のデータ処理を経験していなかったことから困っていました。80社のデータ抽出ですから検索条件は80個あった訳ですが、ご教授いただいたように表の最終列に一列ごとに80社の顧客コードを「行と列の入れ替え」貼付けで意外と簡単に条件設定ができました。 そして、簡単なIF式で80列にコピーし、オートフィルで縦方向の3000行に貼付けて、「1」or「0」の判定から横方向の合計を求め、個別の契約が対象となるかならないかを求めることができました。 あとはLOOPするマクロで対象外の行を削除して、求める契約件数が抽出できました。 エクセルにはある程度の自信があったのですが、今回はどうしていいか分からずお手上げ状態でしたので、早いご教授もあってたいへん助かりました。 今後とも、よろしくお願いいたします。