[[20071025100638]] 『日付(一定の範囲内)を表示させたい』(ton) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『日付(一定の範囲内)を表示させたい』(ton)

 セルA  セルB
 実施済  8月5日
 実施予定 11月1日
 実施予定 11月30日
 対象外

といった表があるとします。
オートフィルターで「実施予定」のみを選択し、その後、セルBに「本日から1ヶ月以内のもの」のみを表示させたいとします。

上記の場合、表示結果は、

 セルA  セルB
 実施予定 11月1日

となる予定です。

セルAの「実施予定」のみを選択するためには、

 Sub test()
 '
 ' test Macro
 '
    Selection.AutoFilter Field:=5, Criteria1:="実施予定"    
 End Sub

とすれば良いことは分かるのですが、その後更にセルBで「今日から1ヶ月以内」に絞り込む方法が分かりません。

どなたか、方法をご存知の方、ご教授頂けませんでしょうか? どうぞよろしくお願い致します。


 たとえば、こういう方法があります(あきお)

 1.シート1の先頭行に項目名のセルを用意(作業	状況	日付)

 作業	状況	日付
 草取り	実施済	8月5日
 資源回収	実施予定	11月1日
 村祭り	実施予定	11月30日

 2.シート2に条件を設定

 状況	日付	日付
 実施予定	=">=" & TODAY()	="<=" & EDATE(TODAY(),1)

 同じ内容ですけど、こんな感じ
 A1 状況
 B1 日付
 C1 日付
 A2 実施予定
 B2 =">=" & TODAY()
 C2 ="<=" & EDATE(TODAY(),1)

 3.マクロ

 Sub Macro1()
    最終行 = Worksheets(1).Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
    最終列 = Worksheets(1).Cells(1, ActiveSheet.Columns.Count).End(xlToLeft).Column
    Set 範囲 = Range(Cells(1, 1), Cells(最終行, 最終列))
    範囲.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Sheets("Sheet2").Range("A1:C2"), Unique:=False
 End Sub
 // 補足
 EDATE() は、分析ツールを追加する必要があります
   [ツール] メニューの [アドイン] 
   [アドイン] 一覧の [分析ツール] チェック ボックスをオン
 また、1月31日の1ヵ月後は、2月28日とかになったりするので注意が必要です


あきおさん、早速のコメントありがとうございます。

ただ、どうしても別シートに表示させるのではなく、あくまでも同一シート上で、日付の範囲を絞り込みたいのです。

日付の範囲を絞り込んで画面に表示させる、何か他の方法はございませんでしょうか?


 「実施済」「8月5日」をそのまま項目名として使ってもよいです(あきお)
 フィルタオプションの設定というのを利用して、検索条件範囲に
 抽出したい条件を指定します。
 上記例では、シート2の条件を使用しましたが、データと同じシートでも
 かまいません。条件を指定する際に項目名が必要です。
http://www.excel-jiten.net/database/extract_filter_option_and.html

 あきおさん、コメントありがとうございます。
 何分初心者なので、頂いたコメントをフルに理解することができておりませんm(_ _)m

 可能であれば、

 Selection.AutoFilter Field:=5, Criteria1:="実施予定" 

 のように、Selection.AutoFilterを使用して「本日から1ヶ月以内」という条件満たしたいのですが....。

 Selection.AutoFilter Field:=5, Criteria1:="=<TODAY()+30"

 とやっても、想定した結果が表示されないんですよね....。

 どなたか、Selection.AutoFilterを使用した良い方法をご存知ないでしょうか?

 >Selection.AutoFilter Field:=5, Criteria1:="=<TODAY()+30"
 Selection.AutoFilter Field:=5, Criteria1:="=<" & Date + 30

 どうでしょう?
 (じゅんじゅん)

 じゅんしゅんさん、早速のコメントありがとうございます。

 1.Field5を”実施予定” かつ
 2.Field6を「本日から一ヶ月以内」としたかったので

 Selection.AutoFilter Field:=5, Criteria1:="実施予定"
 Selection.AutoFilter Field:=6, Criteria1:="=<" & Date + 30

 としてみたのですが、想定結果(1件表示される予定)と異なり、何も表示されない状態になってしまいました。

 どこが悪いのか、お分かりになる方いらっしゃらないでしょうか?


 これでうまくいくかもです(あきお)
    sdate = Format(Date, "yyyy/mm/dd")
    edate = Format(Date + 30, "yyyy/mm/dd")
    Selection.AutoFilter Field:=6, Criteria1:=">=" & sdate, Operator:=xlAnd _
                                 , Criteria2:="<=" & edate


 あきおさん、じゅんじゅんさん

 色々とコメント、ありがとうございました!

 最終的に、あきおさんにご指示頂いたとおりにしてみたところ、思うように動作させることができました。

 本当にお世話になりましたm(_ _)m

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.