- 締切済み
エクセル 大量のデータから抽出し自動表示
エクセルの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です。 よろしくお願いします。
- purin6
- お礼率73% (34/46)
- 財務・会計・経理
- 回答数2
- ありがとう数1
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- KURUMITO
- ベストアンサー率42% (1835/4283)
大量のデータを扱う場合に配列数式などを使うことは計算に負担がかかりますので出来るだけ作業列を使って対応することです。 シート1のデータで同じデータの行を抽出し別のシートに表示させるのですが、同じデータの行が幾つもある場合にはどのようにするのでしょう。ここでは同じデータの行の一件だけを抽出する場合、および何件も抽出する場合についても対応する方法について説明します。 初めにシート1では2行目から下方にデータが入力されているとします。 作業列としてG2セルには次の式を入力して下方にオートフィルドラッグコピーします。 =IF(COUNT(C2:F2)=0,"",C2&"/"&D2&"/"&E2&"/"&F2) H2セルには次の式を入力して下方にオートフィルドラッグコピーします。 =IF(G2="","",IF(AND(COUNTIF(G:G,G2)>1,COUNTIF(G$2:G2,G2)=1),ROUNDDOWN(MAX(H$1:H1),-4)+10000,IF(COUNTIF(G$2:G2,G2)>1,INDEX(H$1:H1,MATCH(G2,G:G,0))+COUNTIF(G$1:G1,G2),""))) そこでお求めの表ですがシート2にA2セルには次の式を入力してF2セルまでオートフィルドラッグコピーしたのちに下方にもオートフィルドラッグコピーします。 =IF(ROW(A1)*10000>MAX(Sheet1!$H:$H),"",IF(INDEX(Sheet1!$A:$F,MATCH(ROW(A1)*10000,Sheet1!$H:$H,0),COLUMN(A1))=0,"",INDEX(Sheet1!$A:$F,MATCH(ROW(A1)*10000,Sheet1!$H:$H,0),COLUMN(A1)))) 同じデータの行を何件も抽出して表示させる場合にはA2セルには次の式を入力してF2セルまでオートフィルドラッグコピーしたのちに下方にもオートフィルドラッグコピーします。 =IF(ROW(A1)>COUNT(Sheet1!$H:$H),"",IF(INDEX(Sheet1!$A:$F,MATCH(SMALL(Sheet1!$H:$H,ROW(A1)),Sheet1!$H:$H,0),COLUMN(A1))=0,"",INDEX(Sheet1!$A:$F,MATCH(SMALL(Sheet1!$H:$H,ROW(A1)),Sheet1!$H:$H,0),COLUMN(A1))))
- osarusan0214
- ベストアンサー率31% (15/47)
よくわかりませんが、C列の中で同じものを別シートに出したいんですよね? それだと正直、数式でやるのは厳しい気がします。 その場合はVBAを使うのがいいと思います。(これは、別で調べた方がいいと思います。) もし、例えばA1セルに入っているものをC列の中から検索するのであれば、 G列に=if(A$1=C1,1,0) で下まで引っ張って同じものをフラグとしておいてあげれば、Vlookupで簡単に出来ると思います。 ただ、Vlookupを使っても、3000件超えるとすごぉく遅いですし(PCにもよるとは思いますが・・・) VBAをちょこっと調べることをお勧めします。
お礼
早速のご回答ありがとうございます。 検索にあてはまるものすべてを抽出したくて・・・ VLOOKだと無理そうですよね。 マクロ?VBA?のほうがいいかとも思うのですが、自動記録の作成方法もいまいちわからず(><) できれば、オートフィルタは今回使用しない方向で考えてます。 回答ありがとうございました。
関連するQ&A
- 重複するデータの抽出について(エクセル)
エクセル2003にて重複するデータの取り出しをしたいのですが、 わからないので教えてください。 例えば A列 B列 C列 D列 E列・・・ 1 色 1回目 2回目 3回目 4回目 2 赤 あ a A 0 3 白 い b B 1 4 黄 う c C 2 5 黄 え d D 3 6 黒 お e E 4 7 赤 か f F 5 : このデータの中から、別のシートのA1に 赤と入力したら、B1にD列のA・Fを抽出 黄と入力したら、B1にD列のC・Dを抽出をしたいです。 VLOOKUP関数を使用してみたのですが、 赤と入力すると、D列のA(1番上のデータ)のみしか抽出出来ず、Fが抽出されません。 重複するデータがあるのはA列のみで、D列には重複するデータはありません。 わかりにくい文章ですみませんが、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルでデータの抽出する際に困っています
エクセルで特定の行のデータを抽出する方法を教えてください。 抽出方法を以下に示します。 A B C D E F G ---------------------------------- 1l 10 11 0 0 0 0 0 2l 12 13 0 0 0 0 0 3l 14 15 1 2 3 4 5 4l 16 17 0 0 0 0 0 5l 18 19 0 0 0 0 0 6l 20 21 6 7 8 9 10 7l 22 23 0 0 0 0 0 というような感じのエクセルデータに対して、 A B C D E F G ---------------------------------- 1l 14 15 1 2 3 4 5 2l 20 21 6 7 8 9 10 というように、C~G列が0でない行のA~Gのデータを別シートに抽出したいのですが、 簡単な方法があれば教えていただきたいです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- データ抽出について
エクセル初心者です。 エクセル2003を使っています。 sheet1に元データとなる表があります。 ・データセル内は数値データです。 ・行方向へは200程度 ・列方向へは1500程あります。 A B C D E F 1日付 項目1 項目2 項目3 項目4 項目5 ・・・ 2 3 4 5 6 この元データからsheet2へ日付をキーにして行データを抽出したいのです。 抽出先のsheet2のA列に予め目的の日付データのみ1200程入っています。 最初Vlookupでやり始めたんですが無理と分かりました。 フィルタオプションで試みたのですが、「検索条件範囲」の式の書き方が 分からず困っております。 OKWaveの関連したQAを参考に試行錯誤を続けていましたが、進展がありません。 お詳しい方よりのご回答をお待ちしております。
- ベストアンサー
- オフィス系ソフト
- 必要なデータを抽出したい
必要なデータを抽出したい A B C D ・・・ 1 7/1 101 102 103 2 7/2 101 103 3 7/3 105 203 4 7/4 103 205 5 7/5 101 202 ・ ・ ・ ・ ・ ・ ・ ・ ・ Excelで上の様にA列に日付、B行列以降に数字が書かれているシートから、抽出したい数字が含まれている行を別シートに抽出するマクロはどのように書けばよろしいのでしょうか。 技術者の方、よろしくお願いします。 例えば、101が含まれているデータを抽出したら、sheet2に A B C D 1 7/1 101 102 103 2 7/2 101 103 3 7/5 101 202 となるようにしたいのです。
- 締切済み
- オフィス系ソフト
- excelのデータ抽出?検索?についておしえてください。
excelのデータ抽出?検索?についておしえてください。 エクセル2003で sheet1に次のようなデータがあります。 A列 B列 C列 D列 E列 ・・・ 1 組 番号 氏名 古典 現文 ・・・ 2 1 1 青木 優 3 1 2 池田 洋子 4 1 3 植村 美紀 ・ ・ sheet2には1組の成績が sheet3には2組の成績が入っています。 クラスによって科目が違います。 この「氏名」と1行目の「科目名」が一致するデータを 他のシートから読み出してくる関数がありませんでしょうか 青木さんの古典を1組のシートから読み出すといった感じです。 説明がへたで 申し訳ないのですが うまく検索ができなくて困っています。 ぜひ くわしいかた教えてください。 どうぞ よろしくおねがいします。
- ベストアンサー
- オフィス系ソフト
- Excel 複数の項目合致するデータを抽出したい
是非、よろしくお願いいたします。 以下の状況です。 sheet1には A、B、C、Dという4列があります。データは1000行くらいです。 sheet2には A、B、C、Eという4列があります。データは2000行くらいです。 この状況で、sheet1のD列の右に新しい列を作り、 「sheet1の(例えば)A1、B1、C1と合致する行のsheet2のE列データ」を、 sheet2のABC列範囲を検索して抽出したいのです。 項目が一つであればvlookup関数でできるものを「複数項目に合致」のため上手くいきません。 この3列のデータを結合して一つにしてみましたが、結合後のデータが16桁以上のため末尾が「0」になってしまい、正確に検索できません。 何か上記を可能にする方法はないでしょうか? よろしくお願いいたします。
- 締切済み
- その他MS Office製品
- エクセル2000 データの抽出
エクセル2000です。 とあるシート[start]のセルF1とF2で入力した文字列をそのまま繋げ(START!F1&START!F2)たものを検索の対象にして、他のシートにあるレコードを検索したいのです。 他のシート[入金履歴]の一番左の列を検索して、検索対象と一致するレコードが欲しいのです。 が、一致するレコードはn件。つまり、一対nになってます。一対一ならばVLOOKUPで話は簡単なのですが、一致する複数のレコードをどう引っ張ってきたらいいかわかりません。
- ベストアンサー
- オフィス系ソフト
- データの抽出について
エクセルにてデータの抽出をしたいのですが、わからないので教えてください。 例えば、下の様なデータがあります。 回数 1回目 2回目 3回目 4回目 1000 あ a A 0 1001 い b B 1 1002 う c C 2 1003 え d D 3 1004 お e E 4 1005 か f F 5 別のシートに、 回数の1001と入力すると、3回目のBが抽出 1003と入力すると、3回目のDが抽出 1005と入力すると、3回目のFが抽出出来る様にしたいです わかりにくい文章ですいませんが、ご回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelでの複数データ抽出方法
Excelで関数を使用して以下のようなデータから 複数のデータ抽出を行いたいのですが可能でしょうか? <sheet1> A列 B列 C列 D列 E列 123456 11 12 13 13 123457 12 13 14 13、14 123158 13 14 15 13,14 123159 14 15 16 14 123160 15 16 17 ※抽出するデータは「13・14」になり、抽出場所は別シートでもかまいません。 過去の質問など参照してみましたがうまく出来ませんでした。 複数の関数を組み合わせでもかまいませんので、お手数おかけしますが よい方法が有ればご教示お願いします。
- ベストアンサー
- その他MS Office製品
- エクセルでのデータ抽出について
初めて質問させていただきます。 2つの銘柄の株価データをエクセルにコピペした後、日付と時刻が同じものを行を揃えて抽出したいのですが、いろいろ試してみましたがわかりません。 具体的には次のようにしたいのですが・・・。 【元データ】 A列 B列 C列 D列 E列 F列 ・ ・ 2007/11/9 9:20:00 520 2007/11/9 9:25:00 1544 2007/11/9 9:15:00 514 2007/11/9 9:20:00 1520 2007/11/9 9:10:00 513 2007/11/8 15:00:00 1430 2007/11/9 9:05:00 509 2007/11/8 14:55:00 1425 2007/11/9 9:00:00 501 2007/11/8 14:50:00 1427 2007/11/8 14:55:00 497 2007/11/8 14:45:00 1431 ・ ・ 【抽出後】 ・ ・ 2007/11/9 9:20:00 520 2007/11/9 9:20:00 1520 2007/11/8 14:55:00 497 2007/11/8 14:55:00 1425 ・ ・ どなたか宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
補足
ご回答ありがとうございます。 C列は数字で、D~F列は日付の場合でもできるのでしょうか? なぜかうまくいきません。 また、C列に入力した数字が3つの場合計算式が対応していましたが、4つ(以上)になるとだめです。 その場合はどうしたらいいのでしょうか。対応方法を教えていだたけますでしょうか。