• 締切済み
  • 困ってます

Excelでのデータ抽出

Excelに複数シートがあり、各シートには以下の内容が記載されてます。  A列 伝票No.  B列 日付  C列 担当者  D列 型番    ・    ・    ・ B列で任意の日付を検索し該当する値があれば、その行(A~D…列)を別シートにコピーし抽出したいのです。 VBAを使ってやりたいのですがどうしたらよいでしょうか? よろしくお願いします。

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

  • 回答数2
  • 閲覧数511
  • ありがとう数0

みんなの回答

  • 回答No.2
  • imogasi
  • ベストアンサー率27% (4562/16328)

>VBAを使ってやりたいのですがどうしたらよいでしょうか エクセルVBA特有の フィルタオプションや Find などの方法もありますが またVBでもありえる 全行総なめチェック法 があります。 質問者のレベルが判らないが 全行総なめチェック法 でよいと思う。 最終行を割り出し 最初のデータ行のB列から、最終行のB列まで、全行に亘って、 任意の日付(内実は日付シリアル値という整数です)とB列が 等しいかどうか比較し、等しければ指定シート に書き出せばよい。 被検索シートが2シート以上あれば、For Each Nextで 繰り返せばよい。 実例はOKWAVEの過去の質問に沢山ありますよ。

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

関連するQ&A

  • エクセルの抽出方法

    はじめまして。 今、エクセルの抽出方法でどうすれば良いか悩んでおります。 エクセル2007 添付の画像で行・列は増えていくのですが、行の「日付」や「担当者」を条件として抽出する方法は ありますでしょうか? 別シートに表示でも構いませんので、アドバイスお願い致します。

  • EXCELで別ファイルからデータを抽出するには?

    EXCELについて条件に一致する列の内容を抽出する方法を教えてください。 シート1の行に日付があり、列に品名と日ごとの数を入力してあるシートがあります。 このシートの内容を別のシートに日付を入力すると、その日の内容が表示されるようにしたいのですが、うまくいきません。 [シート1]     1    2    3   4 (←日付) A品  10  20  30   40… B品  30   10  40  20… C品  15  16   17  18… D品  20  21   22  23… [シート2]     *(←日付を入力) A品 (   ) B品 (   ) C品 (   ) D品 (  ) シート1とシート2はそれぞれ別ファイルで同時に開いている状況です。 シート2の*部分に日付を入れると該当する日付の各品名の数量が( )の部分に表示されるようにするにはどうしたらよいですか?

  • Excelでの文字列抽出

    Excelで文字列の抽出とそれを並べる方法を教えてください。 関数だけを用いて実現できるのか、マクロを使わなければできないのかも分かりません。 この関数をこの様に使えばよいというのを教えていただけると幸いです。 やりたいことは、下記条件で、シート2のB列にシート1のG列~P列までに登録されている担当者名に該当するB列の店名を4店まで抽出したいのです。 分かりづらくて申し訳ございませんが、よろしくお願い致します。 ------------------------ シートが2枚(シート1/シート2)あります。 シート1  B列は4行毎に結合されており、店名が登録されています。  G列~P列までは1行目は担当者名、2,3,4行目は補足情報が登録されています。  シート2  A列に担当者名が入っています。(4行毎に結合しています)  B列にA列の担当者名に該当する、シート1の店名を4店まで登録したい。

  • 回答No.1
  • fmajin
  • ベストアンサー率61% (75/122)

まず、VBAを検討する前に、通常の手順で別シートに抽出する方法を検討してみるとよろしいのではないでしょうか。 ご質問者さまのスキルがわかりませんが、[データ]→[フィルタ]→[フィルタオプションの設定]コマンドを実行すると、元のデータベースリスト範囲とは、別のセル位置にデータを抽出できるのはご存じでしょうか? ただし、通常の手順で別シートに抽出しようとしても、エラーが表示されてしまい、実行することができません。この場合、抽出先の別シートを表示しておいて、同コマンドを実行することで行えます。 (1)元のデータベースにはあらかじめ「Database」などの名前を付けておくといいでしょう。 (2)抽出先のシートに、元のデータベースのフィールド名だけをコピーしておきます。 (3)抽出先シートに日付の条件範囲を用意します。抽出範囲と重ならないようにして、たとえば1行目にフィールド名の「日付」として、2行目に日付の条件値を入力します。この2行の範囲が条件範囲となります。いつからいつまでというような日付の期間を条件にする場合は、2列分の条件範囲を用意する必要が出てきます。 (4)抽出先シートで、周囲に何も入力されていない空白のセルを選択した状態で、、[データ]→[フィルタ]→[フィルタオプションの設定]コマンドを実行します。 (5)表示されたダイアログで、まず[指定した範囲]オプションを選択します。すると、「リスト範囲」「検索条件範囲」「抽出範囲」の3カ所が指定できるようになります。「リスト範囲」には、元のリスト範囲を指定します。このとき名前を付けていれば、[F3]キーを押して表示されるダイアログから貼り付けられるので便利です。あとは、抽出先のシートで、「検索条件範囲」と「抽出範囲」(フィールド名をコピーしてきた1行分だけ)を指定して実行すれば、目的が達成できるはずです。 どうしてもVBA化する必要があるのならば、この手順を自動記録した上で研究されてみてはいかがでしょうか。

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

関連するQ&A

  • 一部のデータを別シートに自動的に抽出したい

    仕事で顧客データの入力をしています。そのデータの中で、ある条件に満たすデータの一部を別シートに自動的に抽出できるようにしたいです。必死に調べたのですが、できません。どうか教えてください。 ※基本データ(これからも毎日ここに入力します)   A     B    C     D     E    F     G   1  NO 担当者 お客様  日付   年齢  住所  土地有無 2 1  林   鈴木  3/1  55  ☆    有 3 2  国分  田中  3/1  37  ☆    無 4 3  国分  近藤  3/2  41  ☆    無 土地有無欄(G列)の「無」に該当する担当者列(B列)、お客様列(C列)のみを別シートに自動的に抽出する様にしたいです。 ※抽出先のシート    A      B       C      D     E 1 担当者 お客様名  予算  希望建築地 家族構成 2 国分   田中  3 国分   近藤    C列とD列とE列は新たに追加入力していく項目です。

  • excelで条件に一致するデータ全てを抽出する方法

    現在、エクセル2003を使用しています。 A列・B列・C列にデータが入力されています。 ただし、空白セル(空白行)もあります。 A列に“@Name”とデータ入力がある場合 同じ行のC列の値を抽出したいと思います。 A列に@Nameは複数ありますが、C列の値は それぞれ違いますので、データの集計先はF列に 全て抽出をしたい。 なにか良い方法(VBAや関数)がありましたら 教えてください。

  • エクセルで別シート同士の照合結果を抽出

    シート1(担当者アの案件): A列に会社名 B列に担当者名 シート2(担当者イの案件): A列に会社名 B列に担当者名 シート3(担当者未定の案件): A列に会社名 B列に担当者名 シート4 シート1とシート3を照合して、シート1に存在する場合、シート4に抽出 シート2とシート3を照合して、シート1に存在する場合、シート4に抽出 としたいのです。やり方を教えていただけますでしょうか。 ちなみに結果の抽出はシート4でなくてもどこでもいいのです。 お手数ですがよろしくお願いいたします。

  • エクセルでのデータ抽出について

    初めて質問させていただきます。 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 ・ ・ どなたか宜しくお願いいたします。

  • EXCELでデータを抽出してコピペしたいです

    指定した日付より、それ以前の誕生日(指定日も含む)の人だけを抽出してコピペしたいのですが WORKBOOK1のSHEET1(名簿)のH列に生年月日(他の列にもデータあります) データは、1200件(行)あります。 WORKBOOK2のSHEET1(該当者)名簿と配列は同じです。 A1に指定の日付をいれます。 WORKBOOK1のSHEET1(名簿)より抽出したデータのペースト位置は、A3からです。 VBAで可能でしょうか?

  • Excelでのデータ抽出

    Excelで外部結合風のデータ抽出を教えてください。 シートAとシートBに表形式のデータがあり、 シートAのA列の値とシートBのA列の値が一致するシートBの 行を抽出するのが目的です。 具体的には次のような感じです。 シートA         シートB ----------------  ---------------- A列 | B列 | C列     A列 | B列 | C列 ----------------  ---------------- 2  | 2B  | 2C      1  | 1BB | 1CC ----------------  ---------------- 4  | 4B  | 4C      2  | 2BB | 2CC ----------------  ---------------- 6  | 6B  | 6C      3  | 3BB | 3CC ----------------  ---------------- ↓ シートB ---------------- A列 | B列 | C列 ---------------- 2  | 2BB | 2CC ---------------- 以下以外の方法がありましたら教えてください。 1)アクセスに両シートのデータを取り込み、2つのテーブルを外部結合で連結させる。 2)マクロで二重ループをつくり、A列が一致した行を取り出す。 よろしくお願いします。

  • EXCEL:ゼロ以外のデータを詰めて抽出する方法

    初めて投稿します。よろしくお願いいたします。 EXCEL2000を使用しています。 オートフィルタを使わずに 関数でデータを抽出する方法で悩んでいます。 下記<データ>が存在しています。 2行目がゼロ以外のものを、 別シート<抽出>に上から詰めて抽出したいのです。 <データ>   A列 B列 C列 D列 E列 1行 1  2  3  4  5  ←日付 2行 5  3  0  2  0  ←数字 <抽出>別シート   A列 B列  1行 1  5 2行 2  3 3行 4  2   ↑  ↑   日付 ゼロ以外 関数については中級レベルだと思います。 いろいろ試したのですが、関数を組み合わせてもなかなかうまくいきません。 どなたかご教授いただけないものでしょうか? よろしくお願いいたします。

  • Excelデータの抽出について

    Excelについて質問いたします。 Excelにて複数条件にマッチするデータを表示させたいのですが、どのようにすればいいでしょうか? 表はA列から順に、日付、部署名、商品名、入荷数、記号、配達1、記号、配達2、記号、配達3、記号、残りという列にしています。 各行を分かりやすくするために、商品名ごとにセルの背景色を変えています。 現在は、商品名列を選択し、色フィルターを使って、任意の商品名の行を抽出をしています。 現在の抽出条件であります、商品名の抽出に、残り列の数字が○○以下(未満)または残り列の数字が0以外という抽出を追加したいです。 つまり、商品名が○○かつ残り数字が0以外などです。 商品名、残り列の抽出条件につきましては、使用頻度の関係で、条件式の入力よりは一覧から選択の方がいいです。

  • Excelですが、同一データが複数あるとき、検索して、その全部を抽出する方法

    Excelですが、検索キーに、同一データ(レコード)が複数あるとき、検索して、その全部を抽出表示する方法を教えてください。 Vlookupは、同一データが複数あるとき、最初の行(レコード)を1つだけ抽出してきます。2つ目、3つ目の行は抽出できませんが、その全部を抽出する方法がありますでしょうか。 例えば、以下の例で、「A株式会社」をキーに検索した場合、<検索結果>シートのように、該当のレコード3つ(行2~4)を抽出して表示するようにしたいのですが、方法はありますでしょうか。よろしくお願いします。 <データシート>  列A   列B     列C  列C 行1  No  会社名    所属  担当者 行2  1  A株式会社  ○事業部  坂下順人 行3  2  A株式会社  △事業部  滿山友人 行4  3  A株式会社  △事業部  目標達子 行5  4  B株式会社  設計部 山下清人 行6  5  B株式会社  営業部 横浜美人 行7  6  C株式会社  営業部 川崎次郎 行8 ・・ ・・・・・・・・・・ <検索結果:別のシートにおいて> 行1   会社名  所属   担当者 行2   A株式会社  ○事業部 坂下順人 行3   A株式会社  △事業部 滿山友人 行4   A株式会社  △事業部 目標達子

  • 必要なデータを抽出したい

    必要なデータを抽出したい    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 となるようにしたいのです。