• ベストアンサー

検索したい日付からデータを抽出したい。

こんにちわ。 キャンペーンが何日~何日までどういった内容がある、という一覧を作成しています。 Aの列が開始日、Bの列が終了日、Cの列がキャンペーン内容、です。 検索したい日付をD1のセルに入力したら、その日付に該当するキャンペーンすべてを別のシートに抽出できないでしょうか・・・ オートフィルタで抽出は出来るのですが、日付を入力しただけで抽出 させたいのですが、無理でしょうか・・・ よろしくお願いします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

フィルタオプションの設定を利用して抽出する方法ですが如何でしょうか。 ・参照シート(仮にsheet1で見出し行ありとします)で抽出シート(仮にsheet2とします)とします。 (1)sheet2のA1は未入力、A2に=(Sheet1!A2<=$B$2)*(Sheet1!B2>=$B$2)し、B2に日付を入力 (2)sheet2の任意セルを選択→データ→フィルタ→フィルタオプションの設定 (3)「指定した範囲」をチェック、「リスト範囲」欄にSheet1!A:C、「検索条件範囲」欄にsheet2A1:A2、「抽出範囲」欄にA4→OK 因みに(2)~(3)をマクロ登録しておくと以後の操作が楽になります。

tubasakko2
質問者

お礼

ありがとうございました。 参考にしてみると理想通りになりました☆

その他の回答 (1)

  • keirika
  • ベストアンサー率42% (279/658)
回答No.1

データが入力されているシートをSheet1、抽出先のシートをSheet2とします。 なお、Sheet1のデータはA1から開始し、見出し行及び空白行が無い事を前提とします。 Sub Sample() Dim Data As Range Dim i As Long Dim j As Long Set Data = Sheets("Sheet1").Range("a1").CurrentRegion j = 1 For i = 1 To Data.Rows.Count If Data.Cells(i, 1) <= Sheets("Sheet1").Range("d1") And _ Data.Cells(i, 2) >= Sheets("Sheet1").Range("d1") Then Data.Rows(i).Copy Destination:=Sheets("Sheet2").Cells(j, 1) j = j + 1 End If Next i Set Data = Nothing End Sub

tubasakko2
質問者

お礼

ありがとうございます。 チャレンジしてみたいと思います。