エクセル複数検索でデータが多くて動かない時の対処法

このQ&Aのポイント
  • エクセル初心者が関数vlook、INDEX、(IF、AND)DJETなどを使用して複数のデータを検索しようとしたが、データが膨大で動作しなかった。データ量は2メガバイト以上あり、3000行以上の文字データが含まれている。また、シート1では種類、メーカー、年数、会員、状態ごとに金額があり、シート2では種類、メーカー、年数、会員、状態を入力すると単価表から金額と行番号を取得したいがうまくいかない。過去の履歴データではアクセスが簡単と書かれているが、アクセスの方法がわからないため、エクセルでの解決方法を教えて欲しい。
  • エクセルで複数のデータを検索するために関数vlook、INDEX、(IF、AND)DJETを使用したが、データ量が大きすぎて処理ができない問題に直面している。2メガバイト以上の文字データが含まれ、単価表には種類、メーカー、年数、会員、状態ごとの金額が記載されている。シート2には同じ種類、メーカー、年数、会員、状態を入力し、単価表から金額と行番号を取得したいがうまくいかない。過去の履歴データではアクセスが簡単と記載されているが、アクセスの方法が分からないため、エクセルでの解決策を教えてほしい。
  • エクセル初心者が関数vlook、INDEX、(IF、AND)DJETなどを使用して複数のデータを検索しようとしたが、データ量が大きすぎて処理できない。文字データは2メガバイト以上あり、シート1には種類、メーカー、年数、会員、状態ごとに金額が書かれている。シート2には同じ種類、メーカー、年数、会員、状態を入力し、単価表から金額と行番号を取得したいがうまくいかない。過去の履歴データではアクセスの方法が簡単と書かれているが、私にはわかりません。エクセルでの解決策を教えてください。
回答を見る
  • ベストアンサー

エクセル 複数検索

初めまして初心者ですがよろしくお願します。 関数vlook、INDEX、(IF、AND)DJETなどで作ってみたのですが、データ-量がありすぎて動きませんでした。 文字データ-だけで2メガあります                  シート1(単価表)             金額一般    金額会員 種類 メー 年数 よい 普通 悪い よい 普通 悪い ア   A  97   900 800 600 1000 900 600  ア   A  96    ・   ・   ・   ・   ・   ・ イ   b  97    ・   ・   ・   ・   ・   ・ ・    約3000行 ----------------------------------                     シート2 種類 メーカー 年数  会員  状態 金額 行数   OO  OO    O   00  OO           最大600行    種類、メーカー、年数、会員、状態をシート2に入力すると金額と金額がある行ナンバーをシート1の単価表から出してみたいのですがうまくいきません。最大600ぐらいあります。 過去の履歴データ-をみますとアクセスのほうが簡単みたいなことをかかれてましたがアクセスは使ったことがありません。 できましたらエクセルでお願いしたいのです 履歴データ-で、にている質問があったのですが私にはレベルが高すぎてわかりませんでした(すいません) なにか良い方法がありましたらお願いいたします。

  • 0009
  • お礼率73% (11/15)

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

こんにちは。 つまり、3000レコード内に 種類、メーカー、年数、会員、状態 の全項目が同じ物はないって事? シート1、シート2の先頭列に1列追加して =種類セル&メーカーセル&年数セル&会員セル&状態セル これで、種類、メーカー、年数、会員、状態を繋げたユニークなデータを作ります。 シート2の金額セル =VLOOKUP(シート2のA2,シート1の絶対範囲,シート1の金額列番号,FALSE) シート2の行ナンバーセル =MATCH(シート2のA2,シート1の絶対範囲,FALSE)+1

0009
質問者

お礼

回答有難うございました お礼がおくれてすいません。 (つまり、3000レコード内に 種類、メーカー、年数、会員、状態 の全項目が同じ物はないって事? ) ずばりそのとうりです。 VLOOKUP、MATCHで なんとかできそうです。 ありがとうございました。 これなら軽くなりそうです いま関数データ-を入れて15.02MBあり たびたび止まってました。 これ以上軽くする方法はないですよね?

0009
質問者

補足

papayuka様 教えていただいた関数 &を使ってVLOOKUP、MATCHで 思いどうりにできたのですが3度目の再計算でフリーズ してしまいました。 もう少し軽くできる方法はないのでしょうか? すいませんが教えてください。

その他の回答 (2)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

こんにちは。 > 思いどうりにできたのですが3度目の再計算でフリーズ > してしまいました。 > もう少し軽くできる方法はないのでしょうか? どんな使い方をしているか不明なので解りづらいのです。 1.シート2の600行には、少しずつデータを追加しているが、一度追加したデータに変更は無い。 既に変更の可能性がない所は範囲を丸ごとコピーし、形式選択の値貼り付けで同じ所に貼り付ければ良いと思います。(検索用関数がある列、VLOOKを入れた列、MATCHを入れた列など) 2.シート2の600行のデータがたえず変更・追加される。 関数でなくVBAあたりで直接値を書き込む処理をするなど。 ※データ量的にそんなたいした量ではないのにそんなに重いのはシート1でも大量の関数を使っているのでしょうか?

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

こんにちは。 シート1の3000レコード内に、 種類、メーカー、年数、会員、状態  の各項目で絞って行くと条件にあうのが600レコード程あるハズだって意味? だとしたら、オートフィルタで各項目を絞って行くんじゃダメなのでしょうか?

0009
質問者

補足

お答えを頂き有難うございます。 書き方が変でしたね。すいません 種類、メーカー、年数、会員、状態が 下に600あるということなんですが?? 説明が難しいです。 オートフィルタをかけると600回かける感じです。 すいません説明が下手で・・・ わかっていただけましたでしょうか?

関連するQ&A

  • エクセル 金額抽出 VBA

    すいませんが助けてください 先日関数で詳しく教えていただいたのですが データ-量が多く再計算時に動かなく なることが多いみたいで困っています。                  シート1単価表              会員   一般 行 種類 メ  年式 上 中 下 上 中 下 1  A  O  98   6 5 4  3 2 1 2  A  O  97   7 6 5  5 4 2 3  A  P  98   8 6 6  . . . 4  B  P  98   0 0 0  0 0 0  ・ 3000行ぐらいあります 種類、メーカー、年式が同一なデータ-はありません ----------------------------------                    シート2 種類 メ 年式 会員 状態 金額 行 B  O  98 一般 中 A  O  97 会員 下 . .  最大で600 シート2で種類、メ、年式、会員、状態を入力すると 金額、行をシート1単価表から出したいのです お忙しいとおもいますが助けてください 文字データ-だけで2MB、関数込みのデータ-で6.28MBあります。エクセルは2000です pentium3 500です 2日前にこのokWebさんにたどり着き履歴を見て考えたのですが私にはチンぷんカンプンです VBAは自動マクロで2度作ったことがあるくらいの初心者です 大変、あつかましいことは理解しております なにとぞよろしくお願します。

  • EXCEL VBA VLOOKUPの様な検索したい

    お世話になります。 質問させていただきます。 添付図の表3を作成したいのです。 やりたい事は・・・ [販売金額]シートに[集計]というボタンを作成して、このボタンがクリックされたら[商品名]と[年月] (2012年4月とか)をKEYに隣の[平均単価]シート参照して、合致する平均単価を該当商品の販売金額の下段に1行挿入して平均単価を表示させたいのです。(図中 表3の緑セル部分) まとめますと・・・ 販売金額シート表1の全データをREADして商品名と年月をKEYに表2に合致した平均単価を探して、見つかれば平均単価を1行挿入して表示して最終的には表1を表3に変化させたい、のです。 補足 商品数は可変ですが1000個程度です。 もし合致する平均単価がなくても該当商品に平均単価フィールドを1行挿入して0円またはブランク表示させたいです。 何度も似たような質問ばかりしてまして申し訳ありませんが、どなたかご教授いただけませんでしょうか? よろしくお願い致します。 環境 Windows XP SP3 Excel2003

  • エクセル(2003)で検索結果を行を変えて表示したい

     初めて質問させていただきます。sheet1に下記の表があります。この表を何回か検索し、その都度、データのある行の次の行に検索結果を表示したいと考えています。たとえば、一回目の検索では、A列を「花」で検索し、結果をデータのある行の次の行(この例では行番号5)に表示します。二回目の検索では、A列を「樹木」で検索し、結果を一回目の検索結果のある行の次の行(先ほど「花」で検索した結果を表示した行の次・この例では行6)に表示させたいのです。このようなことを、できれば関数を使って行いたいのですが、ぜひ、教えてください。 sheet1  A (種類) B(単価)C(数量)D(合計) 1  花    100    5   500   2  樹木   1800    2   3600 3  樹木   3000    1   3000 4  花    400    6   2400 5  花  (ブランク) 11   2900 6  樹木 (ブランク) 3 6600   3 shht2  A (種類) B(単価)C(数量)D(合計) 1   

  • Excelの複数ブックにあるデータの結合(統合?)

    複数の人から同じフォームに入力をした表が送られてきます。 【表サンプル】 A1 記入者名 2行目に項目が B1 空白 B2 購入日付 B3 金額  のように並んでいます。 3行目からデータが入っており、記入者によって入力する行数が異なります。(最大データ数は20件) 複数名が入力してくるこの表のデータを 1つのシートにまとめたいと思っています。 (各データの記入者情報がわかるようにしたいです) まとめた後、さらに「購入日付」の月ごとのシートに分けることができたら更に助かります。 このような作業をするにはどうしたらよいでしょうか。大変困っています。 わかりづらくて申し訳ありませんが、どうぞよろしくお願いいたします。

  • 複数シートに振り分けたデータをそれぞれ集計したい

    こんにちは。 商品コード 名称  金額      業者 100    PC1  10,000  ア 110    PC2  10,000  ア 200    PC3  20,000  イ 300    PC4  30,000  イ 上記のようなデータがシート1にあるとして、業者毎に他のシートにデータを転送するまでは何とか無事にマクロを組むことが出来ました。 この後、業者毎に分けたそれぞれのシートの最終行で金額の集計をしたいのです。 例えばシート2の業者アのデータであれば↓ 商品コード 名称  金額      業者 100    PC1  10,000  ア 110    PC2  10,000  ア 総計          20,000   同じようにシート3の業者イのデータ、シート4の業者ウのデータ・・・を集計したいのですが、どの様なマクロを組めばそれぞれのシートの最終行で集計が表示されるのでしょうか? ちなみに、商品数、業者数とも変動するため、固定値が入れられません。 本やインターネット等でいろいろ調べてみたのですが、分かりませんでした。 お分かりになる方がいらっしゃいましたら、どうかご教示ください。 宜しくお願い致します。

  • エクセルで複数シートを一覧表にするには?

    教えてください。エクセルで複数シートを自動で別のシートに転記したいのですが、 やり方がわかりません。 各シートの空白部分を除いてデーターがある分だけを取り出して、金額に数式を入れて 合計金額を追加したいのですが・・・・・。 下記のような感じでできますか? 宜しくお願いいたします。    Sheet1     商品名  単価  数量        ****   000  000        ****    00   00   Sheet2     商品名  単価  数量        ****   000  000        ****    00   00   Sheet3     商品名  単価  数量        ****   000  000        ****    00   00 をSheet4に   シート名 商品名  単価  数量  金額   Sheet1  ****   000  000  0000(単価×数量)          ****    00   00  0000(単価×数量)                    合計金額  000   Sheet2 商品名  単価  数量  金額         ****   000  000  0000(単価×数量)         ****    00   00  0000(単価×数量)                   合計金額  000    Sheet3 商品名  単価  数量  金額         ****   000  000  0000(単価×数量)         ****    00   00  0000(単価×数量)                   合計金額  000

  • エクセルのマクロ作成で困ってます

    マクロ初心者です。 ”Sheet1にあるデータについて、複数条件で抽出後、Sheet2の表に転記” という動作をマクロで組みました。 ここまでは良かったのですが、Sheet2に転記する際、下記の様にさらに条件を付加したいと思っています。 やりたいこと(ア) Sheet1で条件によりたとえば10個のデータを抽出できたとし、 1~6個目までは、Sheet2の1行~6行に転記、 7~10個目までは、Sheet2の11行~14行に転記。 ※”6個目まで1~6行に転記”というのは決まっているのですが、  この10個というのは、例であって、5個だったり、14個だったり、  抽出したデータにより異なるので、変数です。 やりたいこと(イ)   Sheet1から、さらに別の条件で抽出したデータを、  やりたいこと(ア)の10個目を転記した行のあとすぐ(例でいうと15行目)から転記したい。  ※やりたいこと(ア)で抽出した条件が6個以下だった場合、11行目から転記。 以上の2つです。 条件の抽出までは出来るのですが、 (ア)の7個目から別のところに転記 (イ)の別の条件で抽出したデータを(ア)の次(6個以下の場合は11行目)から転記 をどうやって組んだら良いかわかりません。 もし分かる方がいらしたら、 どのようなコマンド(?)を使ったら良いのか、 ご教示いただけると助かります。 よろしくお願いします!

  • エクセル複数のファイルの複数のシートをアクセスのクエリで検索したい。

    よろしく御願い致します。 エクセルの複数のファイル(5ファイル)に各々10から20ぐらいシートがあります。 シートは全て同じ書式で、データの内容は、納入品の納入日・品名・数量・単価・仕入れ業者です。 全てのシートの内容をアクセスのクエリで検索をしたいです。 シートの数はこれから増える可能性があります。 アクセスは初心者です。 おわかりの方がいらしましたら、どうぞ教えてください。

  • エクセル(2003)で検索結果を行を変えて表示したい

     初めて質問させていただきます。sheet1に下記の表があります。この表を何回か検索し、その都度、データのある行の次の行に検索結果を表示したいと考えています。たとえば、一回目の検索では、A列を「花」で検索し、結果をデータのある行の次の行(この例では行番号5)に表示します。二回目の検索では、A列を「樹木」で検索し、結果を一回目の検索結果のある行の次の行(先ほど「花」で検索した結果を表示した行の次・この例では行6)に表示させたいのです。このようなことを、できれば関数を使って行いたいのですが、ぜひ、教えてください。 sheet1  A (種類) B(単価)C(数量)D(合計) 1  花    100    5   500   2  樹木   1800    2   3600 3  樹木   3000    1   3000 4  花    400    6   2400 5  花  (ブランク) 11   2900 6  樹木 (ブランク) 3 6600 秋ほどの質問に余分な表現がありました。訂正させていただきます。    

  • ACCSESSのサブフォームについて

    ACCESS2003を使ってメインにサブフォームが組み込まれた入力フォームを作っています。 メインテーブル(会員登録)には(1)会員CD (2)名前 (3)住所 ⇒ メインフォーム サブテーブル(利用履歴)には(1))会員CD (2)種類 (3)利用回数 ⇒ サブフォーム(データシート)を作りました。二つのテーブルにはリレーションショップはしていません。 ◎メインフォームに(1)会員CD1に対しサブフォームも会員CD1のシートが表示されます。そこはきちんと連動しており,会員CDを3、4と移動しても、サブフォームは連動して履歴が表示されます。ここは問題ありません。  ただサブフォームに履歴を入力していなのに会員CDの列に会員CDだけが表示されます。会員CD”4”のサブはまだ履歴を入力しておりませんが,サブのデータシートには会員CD”4”がすでに表示されています。利用歴や回数は空白です。また履歴を3行入力している場合は4行目には会員CDだけが表示されています。  以前自分が作った同じようなフォームのデータシートでは,利用日や回数を入力してでないと会員CDが表示されないようにできましたが、今後はできないし、その作ったアクセスが手元にないので,作り方がわからなくなってしまいました。なにか原因があると思いますができません。(本当に初歩的なことかもしれませんが教えてください) (メイン) 会員コード No. 3 名前       野田 A夫 住所       東京都渋谷区神宮前1丁目●●番地 ---------------------------------------------- (サブ)履歴(データシートで表示してます)    種類       回数     会員CD    --------------------------------------   ランニング    2         3  --------------------------------------   バレー       1         3   --------------------------------------                                               3                       ↑                      次の行には既にCDNo.が表示されている?                      種類を入力したら表示されるようにしたい。                      ※実際はこの列は非表示にするのですが・・・

専門家に質問してみよう