• ベストアンサー

データを抽出したいのです

fumufumu_2006の回答

回答No.6

excelのVBAです。 元データはsheet1にあるとします。 抽出結果はsheet2のA列の2行目からに表示します。 checkを実行してください。 Sub check() Sheet2.Cells.Clear Dim lastRow As Integer Dim sRow As Integer Dim eRow As Integer Dim i As Integer lastRow = Sheet1.Cells(Sheet1.Rows.Count, 1).End(xlUp).Row sRow = 2 For i = 2 To lastRow If Sheet1.Cells(i, 1) <> Sheet1.Cells(sRow, 1) Then eRow = i - 1 checkFamily sRow, eRow sRow = i End If Next checkFamily sRow, lastRow End Sub '1世帯チェック Sub checkFamily(sRow As Integer, eRow As Integer) Dim 子2007年生まれ As Boolean Dim 子の子2007年生まれ As Boolean Dim 世帯主または妻以外の1987生まれ以前の人 As Boolean Dim i As Integer For i = sRow To eRow If (Sheet1.Cells(i, 2) = 2007) And (Sheet1.Cells(i, 3) = 3) Then 子2007年生まれ = True End If If (Sheet1.Cells(i, 2) = 2007) And (Sheet1.Cells(i, 3) = 4) Then 子の子2007年生まれ = True End If If (Sheet1.Cells(i, 3) <> 1) And (Sheet1.Cells(i, 3) <> 2) And (Sheet1.Cells(i, 2) < 1987) Then 世帯主または妻以外の1987生まれ以前の人 = True End If Next If ((子2007年生まれ = True) And (世帯主または妻以外の1987生まれ以前の人 = True)) Or (子の子2007年生まれ = True) Then Sheet2.Cells(Sheet2.Cells(Sheet2.Rows.Count, 1).End(xlUp).Row + 1, 1) = Sheet1.Cells(sRow, 1) End If End Sub

jyouhoukan
質問者

お礼

遅くなって申し訳ありません。回答ありがとうございました。

関連するQ&A

  • データの抽出 Excel2003

    以下のA表があり、ここから該当するデータをB表のように抽出したいのですが、どすればいいでしょうか。 概要) ○田さん、△池さん、□海さんの家族がいます。 A表の世帯主欄には世帯毎に1,2,3と数字がはいっています。また、抽出した人は該当者の欄に同じく1,2,3と数字が入っています。 空白のセルはブランクの状態です。 なお、世帯主のみ時はこのサイトで教えて頂いたOFFSET関数とMATCH関数の組み合わせでできたのですが。 A表) ┌─────┬───┬───┐ │ 氏名     │世帯主│該当者│ ├─────┼───┼───┤ │○田 ○夫│    1│     │ ├─────┼───┼───┤ │      ○美│    │    │ ├─────┼───┼───┤ │     ○子│ │ 1│ ├─────┼───┼───┤ │△池 △夫  │ 2│ 2│ ├─────┼───┼───┤ │□海 □子   │ 3│ │ ├─────┼───┼───┤ │ □男   │ │ 3│ └─────┴───┴───┘ B表) ┌─────┐ │○田 ○夫│ ├─────┤ │△池 △夫│ ├─────┤ │□海 □子│ └─────┘

  • アクセスのクエリ 抽出について

    アクセスでクエリを組み、あるデーターベースから会員番号・名前を抽出しようとしています。 数万件ある会員番号から指定された500件を一度に抽出したいのですが、どのようにすればよろしいでしょうか。 この500件の会員番号はランダムで特にクエリを組める条件等もなく、抽出したい会員番号が記載されたエクセル一覧からコピーして、クエリの抽出条件に貼り付けたりしたのですが、うまくいきません。 会員番号を1件づつ、抽出条件に入れていくのも大変なので、いい方法があればと思っております。 基礎的なことかもしれませんが、どなたかご教示いただければ幸いです。 よろしくお願いいたします。

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

    関数を使った、表からのデータ抽出方法について教えてください。 氏名 生年月日 年齢 担当者 所属 佐藤 1973/4/5 33 加藤 営業 上田 1987/10/4 19 永田 経理 林 1978/6/8 28 永田 営業 西田 1977/7/9 29 清水 営業 長尾 1984/6/25 22 加藤 経理 上のような表がある時に、別のシートに誕生日ごとの表を出したいのですが、どのようにすれば良いか分からずに困っています。なお”別のシート”に抽出したデータは、以下のような表をイメージしています。 (抽出例) 1月生まれ 該当者なし 2月生まれ 該当者なし 3月生まれ 該当者なし 4月生まれ 5日 1973 33歳 佐藤 (加藤) 5月生まれ 該当者なし 6月生まれ 8日 1978 28歳 林 (永田) 25日 1984 22歳 長尾 (加藤) というように、誕生日を基準に月ごとに表示され、該当するデータの横軸のデータも連動して表示したいのと、可能であれば日にちの若い順に順番に表示ができれば理想的です。またできることなら、営業か経理かでシートが分けられると完璧です。 自分でできない割には欲張りな質問ですみません。方法をご存知の方に、ご教授いただければありがたいです。よろしくお願いいたします。

  • データの抽出方法

    お世話になっております。 以下のような場合で、いっぺんに抽出できる良い方法があれば教えて頂きたく、よろしくお願いいたします。 会社が運営するWebサイトの会員データ (エクセルで、レコード数は1万弱)の集計。 プレゼントキャンペーンに応募して頂いた会員の個人データで、 各自、個人情報以外に4桁の抽選番号が登録してあります。 プレゼントの当選番号に該当する全ての会員データを抽出したいのですが、 一つの抽選番号に対して何名も該当者がいるため、VLOOKUPが使えず、 当選番号も数十通り程あるので、オートフィルタも時間がかかってしまいます。。。。 宜しくお願いします。

  • エクセルの重複データの抽出

    住所録をエクセルで作ったものがあるのですが、件数が3000件ほどあり、項目数が名前、住所、電話番号とあるのですが、名前が重複している物をピックアップしたいのですが、方法がわかりません。どのようにしたら同じな前を抽出できるのでしょうか。ご回答お待ちしております。

  • 2世帯住宅の世帯主について

    今度、2世帯住宅で同居をするのですが、 親世帯・子世帯と分けて世帯主を1人ずつとしたほうがいいのか 1つの家なので世帯主は1人としたほうがいいのか メリット・デメリットを教えていただきたいです。 親世帯(父60歳会社員、母60歳専業主婦) 子世帯(夫30歳会社員、妻30歳会社員、子1人)で 子供を保育園に預けるので、世帯を分けた方が保育料が安くなりますよね? メリットはそれだけかなぁと思うのですが、他にメリット・デメリットはありますか? (住所が同一なので、保育料が安くなる・・ということはないでしょうか?) また、今はまだ親と子が別々に暮らしていて 子世帯の世帯主は、妻30歳会社員 となっているのですが 2世帯住宅で世帯主を分ける場合、妻30歳会社員 が 子世帯の世帯主となっていても問題はないでしょうか? 妻30歳会社員 は嫁です。 また、夫30歳会社員 は国民年金や、国民保険料を支払っていない期間があります。 夫30歳会社員 を世帯主にした場合、上記や税金の徴収が発生するのでしょうか? 色々と質問しましたが、教えてください。よろしくお願いいたします。

  • アクセスでデータをまとめる方法

    今エクセルで60ファイルある中からある条件を 抽出しなくてはいけないのですが、60ファイル 全部開いてフィルタをかけたりCOUNTIFを するのがあまりに手間でアクセスでできないか 考えています。ちなみにイメージは <イメージ> 番号 名前  日付 1  Aさん 10/1 2  Bさん  4/1 3  Cさん  5/1 4  Dさん  4/20 というエクセルファイルから4月は何件あったか というのを抽出したいと考えています。 こんな感じのエクセルデータをアクセスで1ファイル にしてbetween を使えばできるかとは思っているの ですが、60個のエクセルファイルをアクセスで ひとつにまとめるいい方法がわらず、困ってます。 なにかいい案がありましたら教えて下さい!

  • MSDEでデータを抽出する時の処理時間

    Accessのデータベースから、ADOを用いてExcelにデータを抽出する作業をさせているのですが、データベースのレコード件数が多すぎて(現在40万件くらいで、日々2000件くらい増加)、時間がかかって困っています。 ある本に、「MSDEはAccess(Jet)に比べると、より大規模なデータを高速に扱うことが可能になっています。」と書いてあるのですが、これはSQLでの抽出時間が早くなるということで良いのでしょうか? 初心者で、プログラムや専門用語等に詳しくありませんので、できれば簡単な表現で教えていただけたら幸いです。よろしくおねがいします。

  • VBAで期間でデータを抽出するには?(Excel2003)

    いつも助けていただきありがとうございます。 Excel2003でデータベースを作成しました。 「日付」のところには、2008/11/18という形式で入力していますが、 VBAでフォームから「○○○○年○月~○○○○年○月までを抽出」として、 該当レコードを抽出するにはどうしたらよいでしょうか? いろいろ試してはみたのですが、よい方法・アイディアができませんでした。 VBA初心者です。よろしくお願いします。

  • アクセス 同じ年生まれの者を抽出する抽出条件の入力方法

    アクセス2000 名簿テーブルに日付時刻型で生年月日を入力し、和暦で(例 S30-05-21)表示させております。クエリで同じ年生まれの者を抽出したいのですが、抽出条件に year([名簿]![生年月日])=1955 とすれば昭和30年生まれの者が抽出できることは分かったのですが、抽出条件に1955ではなく、S30を使って抽出する方法を知りたいのです。 宜しくお願いします。