• ベストアンサー

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するマクロで対象外の行を削除して、求める契約件数が抽出できました。 エクセルにはある程度の自信があったのですが、今回はどうしていいか分からずお手上げ状態でしたので、早いご教授もあってたいへん助かりました。 今後とも、よろしくお願いいたします。

関連するQ&A

  • Excel 日付・時刻データの抽出

    こんにちは。 Excelの表の一列に、「2005/12/8 14:45:00」のように、日付と時刻が表示されています。時刻は、0:00:00、0:15:00のように、15分単位です。データは、100~300件ほどあります。 この表から、時刻が「0:00:00」のみを抽出したいのですけれど、文字列でないためか、オートフィルタやVLOOKUPは上手くいきません。 又、同じ表から、「0:00:00, 1:00:00」のように、1時間単位で、抽出したいのです。 何か、よい方法があれば、教えて下さい。 宜しくお願いします。

  • Excel関数でデータを抽出する方法

    Excel初心者教室での課題で、以下のような問題を出されました。 次の表から、データが全てあるものだけを抽出し、sheet1からsheet2に移しなさい。 〈名前〉〈 E社〉〈 F社〉〈 G社〉 〈 A 〉〈 1 〉 〈 2 〉 〈 3 〉 〈 B 〉 〈 2 〉 〈 2 〉 〈 C 〉〈 3 〉〈 1 〉〈 5 〉 〈 D 〉 〈 1 〉 上の表からAとC(3社共にデータがある)ものだけを抽出したいのですが、回答条件が ●データ抽出にはオートフィルター機能は使用せず、関数で処理すること ●今まで習った知識で回答可能 とあり、まだ初心者クラスで、データ抽出に関係がありそうな関数はIF関数やVLOOKUPくらいしか思い当たらず、それらを使って抽出を試みたのですが「三社共にデータがあるものだけ抽出」という条件が処理出来ず、上手く出来ませんでした。 手詰まりで先に進めずに今、困っています。 そこで、Excelに詳しい方にアドバイス頂けたらと思い、書き込みしました。 宜しくお願いします。 文章力が低いので分かり辛い文面で、表も見辛くてすみません。

  • エクセルでデータ抽出

    エクセル初心者です。 エクセルでに次のような表を作っております。 (Sheet1) 担当 会社 郵便番号 住所 菊地 A社 0000000 ○○○○ 菊地 B社 0000000 ○○○○ 菊地 C社 0000000 ○○○○ 田中 D社 0000000 ○○○○ 田中 E社 0000000 ○○○○ 山本 F社 0000000 ○○○○ 山本 G社 0000000 ○○○○        ・        ・        ・ と800件くらいあるのですが、 これを 別シート(Sheet2)で名前を菊地と入力すると菊地のデータが一覧で出るようにしたいのですが、どうしたらよいでしょうか。 できれば、マクロを使わずに関数でやりたいです。 VLOOKUPかな?と思い、いろいろ調べたのですが、抽出したいデータが複数あるので、悩んでおります。 すみませんが、どなたかご指導お願い致します。

  • エクセル2003 データの抽出

    excel2003を使用しています。 A列に8桁のコード、B列に、そのコードの品名が入力された表があります。 この表の中から、最初の4桁だけ一致するデータを抽出したいのですが どうすればよいでしょうか? オートフィルタオプションを使ってみたのですが、うまくできません。 よろしくお願いいたします。 例:12348888、12349999、12346666、32224434、46732235・・・・と並ぶコードの中から、 1234×××× のコードの行だけが、表示されるようにしたい。

  • オートフィルタで抽出結果がない場合

    excel2003を使用しています。 以下のような表があります。 コード  社名  終了日  A   あ社   6/1  B   い社         C   う社      終了日に日付が入ったら別シートにその結果をコピーしたいのですが、もし、終了日に日付がまったくない時は、オートフィルタを設定しないか、コピーをしないかにしたいです。 この表一つでしたらマクロを実行しない方法もあるのですが、実際は複数の表を同時にオートフィルタしてコピーしてしまっているので、終了日に日付のまったくない表もあり、その場合、抽出結果をコピーした表がおかしくなります。 説明が不十分かも知れませんが、よろしくお願いいたします。

  • エクセル データをオートフィルで抽出後乱数

    エクセルのデータでオートフィルを使用し、ある程度絞り込んだものから ランダムなデータを抽出したいのですがやっていてもっとうまくやる方法はないかと思い 質問させえていただきました。 私が考えた方法はオートフィル後のデータにsubtotal関数を使用し上から順位をつけ 他のワークシートに乱数表(rand関数とrank関数を併用)を用意するというのもです。 件数の少ない条件ですとそれでもかまわないのですが、1000件中300件抽出という風になってくると 手間がかかりすぎてしまいます。 もっと簡単にできる方法はないでしょうか? データ自体は一行が1つのデータとなっており大体3万行ぐらいです。

  • Excelのオートフィルタで選択⇒別セルへ

    Excelのオートフィルタで選択⇒別セルへ 顧客名と担当者氏名が紐付いている表を作成しています。 一人の担当が複数の顧客を担当しているためオートフィルタを設定しており、 担当名を選ぶと該当の顧客が出てくる感じの表です。 その表の上部に、「○○様 以下顧客リストとなります。ご対応願います。」 のような感じで、オートフィルタで担当を選ぶと ○○の部分に同じ担当名が出てくるようにしたいのですが、 関数で行うことは可能でしょうか? また特に誰も抽出していないとき(すべて表示)は、 ○○には何も表示されないようにしたいです。 無知で申し訳ございませんが、詳しい方ご教授いただけますと幸いです。 宜しくお願い致します。

  • エクセルで抽出したデータを別シートにコピーしたいです

    エクセル2003を使用しています。 例えば、以下のような表があります。  ABC 1あ10 2い15 3あ20 4 A列が条件となり、たとえば「あ」のデータだけ抽出して、そのデータを別シートにコピーします。 同じく「い」だけを抽出して、また別のシートにコピーします。 いままでは、オートフィルタで抽出して自分でコピーをして貼り付けしていましたが、日々データが次の行に追加になるので、毎回オートフィルタしてコピーするのは大変です。 関数か、マクロかVBAを使ってする方法はありますでしょうか。 できれば日々追加になるデータのみをすでにある別シートの前日までのデータの下に追加できるようになればいいと思うのですが。 知識が乏しくできません・・・ よろしくお願いいたします。

  • EXCEL関数でフィルタの様にデータ抽出したい

    発注品一覧表から社別にデータを抽出した発注シートを関数で作りたいです。 オートフィルタは諸事情あって使用しません。 過去の質問のこちらが、かなり近い回答なのだと思いますが 不勉強で自分用に修正ができませんでした。 http://okwave.jp/qa/q3157199.html 一覧表はこのようになっています。 日付 社名 品目 値段 4/1  C社 鉛筆 50円  4/1  A社 定規 150円 4/2  C社 ペン 100円 4/2  B社 鉛筆 100円 社別の別シートに日付・品目・値段を一覧から関数で抽出できるでしょうか? どうぞよろしくお願いします。

  • Excelでデータ加工

    Excel2000です   A  B 1 100 120 2 300 3 50 80 4 150 5 250 6 200 300 と表があるとします このA列の空白にB列の値をコピーしたいと考えています 【完成形】   A  B 1 100 120 2 300 300 3 50 80 4 150 150 5 250 250 6 200 300 オートフィルタで空白を抽出し、コピー&ペーストしてみましたがうまくいきませんでした データは5000件ぐらいありますので、手作業ではなく、できれば関数や機能で行いたいのですが(マクロに疎いので)何かいい方法はありませんでしょうか?

専門家に質問してみよう