[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『日付(一定の範囲内)を表示させたい』(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.