EXCELで特定の条件のレコードだけ抽出する方法を

教えてください

以下のように並んでいる中から特定の日付のデータだけを抽出して他のシートに表示します。

例 2007/02/09を選んだ場合以下を他のシートに表示
2007/2/9 A2 B2 C2
2007/2/9 A3 B3 C3
2007/2/9 A4 B4 C4

データベースでクエリーで抽出するようなことを実行したいわけです。(データベースを使うという回答はなしでお願いします)


日付 項目1 項目2 項目3
2007/2/8 A1 B1 C1
2007/2/9 A2 B2 C2
2007/2/9 A3 B3 C3
2007/2/9 A4 B4 C4
2007/2/10 A3 B3 C3
2007/2/10 A4 B4 C4

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/02/08 15:36:38
  • 終了:2007/02/08 17:46:12

回答(3件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982007/02/08 15:42:38

ポイント27pt

http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter.htm

フィルタを用いるのは いかがでしょうか?

id:garyo

手動でなく自動で他のシートから操作したいのです。

マクロ記録でやってみましたが、うまく記録できなかったですね。

BBBというシートからAAAというシートのフィルタをオンにしてAAAのセルを参照でBBBに持ってこれるかと思ったのですが。

Sheets("AAA").Select

Selection.AutoFilter Field:=1, Criteria1:="2007/2/8"

Sheets("BBB").Select


追記:フィルタは「:="2007/2/8"」→「:=#2007/2/8#」で動きました。

2007/02/08 17:42:24
id:SALINGER No.2

SALINGER回答回数3454ベストアンサー獲得回数9692007/02/08 16:20:35

ポイント40pt

aaaのシートをbbbに抽出するとしてVBAではこんな感じ

Dim i As Integer
Dim j As Integer
i = 1
j = 1
While Worksheets("aaa").Cells(i, 1).Value <> ""
    If Worksheets("aaa").Cells(i, 1) = "2007/02/09" Then
        Worksheets("aaa").Range(Cells(i, 1), Cells(i, 4)).Copy (Worksheets("bbb").Cells(j, 1))
        j = j + 1
    End If
    i = i + 1
Wend
End Sub

http://q.hatena.ne.jp/

id:garyo

ありがとうございます。

オートフィルタが中々言うことを聞いてくれないので

これをベースに書き換えました。

2007/02/08 17:43:00
id:rikuzai No.3

りくっち回答回数1366ベストアンサー獲得回数1412007/02/08 17:03:09

ポイント13pt

フィルタの他の使い方で一つ。


抽出元データの範囲に名前をつけます。

(仮に"データ"としておきます)


抽出先に抽出条件を記入するセルを作り、記入します。

|*日付|

|2007/2/9|

これは抽出先シートのどのセルでも構いませんが、抽出データの邪魔にならない辺りが良いかと。

ここでは仮にE1:E2としておきます。


抽出先シートをアクティブにして、ツールバーの「データ」」→「フィルタ」→「フィルタオプションの設定」をクリック

抽出先を「指定した範囲」にチェック

例示のデータ通りとして、

リスト範囲に「データ」

検索条件範囲に$E$1:$E$2

抽出範囲に$A:$D

をそれぞれ入力してOK。



これで、抽出先シートのA:D列にご希望のデータが抽出されます。

…全自動ではないですね。


あまりVBには詳しくないので、単純にマクロ記録してみました。

↓こんな感じです。


Range("データ").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("E1:E2"), CopyToRange:=Columns("A:D"), Unique:=False



実際は少しVBをいじらないといけないと思うので、

参考サイトを貼っておきます。

http://www.eurus.dti.ne.jp/yoneyama/Excel/filter.htm#optio_vba

以上ご参考まで。

id:garyo

ありがとうございます。

2007/02/08 17:43:29

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません