日付でフィルタリング(今日から〇日前の間)

UiPath初心者です。

データテーブルの列1に複数の年月日を格納したんですが、その日付を今日から7日前までの間でフィルターをかけたいです。
フィルターにはなんと入力すればいいですか?

列1=Now.AddDays(-7).ToString(“yyyy/M/d”)だったら今日から7日前の日付だけでフィルターかかっちゃいますよね?

列=Now.AddDays(-7).ToString(“yyyy/M/d”)
or列=Now.AddDays(-6).ToString(“yyyy/M/d”)
or列=Now.AddDays(-5).ToString(“yyyy/M/d”)
or列=Now.AddDays(-4).ToString(“yyyy/M/d”)
or列=Now.AddDays(-3).ToString(“yyyy/M/d”)
or列=Now.AddDays(-2).ToString(“yyyy/M/d”)
or列=Now.AddDays(-1).ToString(“yyyy/M/d”)

上記を全てフィルターに入れてみましたがフィルタリングされませんでした・・
どなたかよろしくお願いいたします。

こんにちは

データテーブルをフィルタアクティビティでの日時の扱いは、その形式を意識しないと
いけないといけないので、少々面倒なケースがあります。
別のアプローチとして例えば以下の式でフィルターできます。(今日を含まない7日前までを抽出しています。DateColumnという列に日付情報があることを前提としています)

dt = dt.AsEnumerable.Where(Function(r) DateTime.Parse(r("DateColumn").ToString).Date<Today AndAlso DateTime.Parse(r("DateColumn").ToString).Date>=Today.AddDays(-7)).CopyToDataTable()

ご回答ありがとうございます。

データテーブルの他の列にもデータが格納されていて、列1の日付でフィルターをかけて出力は別の列を指定したいんです・・
ちなみに出力したい列は13です。
最初に書いていなくてすみませんでした。

こんにちは

1列だけのDataTableを出力したいということでしょうか?そうであれば

上記の出力に対して、データテーブルをフィルタアクティビティを使って列だけを抽出するか、
あるいは上記とまとめて

dt = dt.AsEnumerable.Where(Function(r) DateTime.Parse(r("DateColumn").ToString).Date<=Today AndAlso DateTime.Parse(r("DateColumn").ToString).Date>=Today.AddDays(-7)).CopyToDataTable().DefaultView.ToTable(False,{"Column13"})

のようにすると良いかと思います。

1 Like

出来ました!!
いつも本当にありがとうございます!!

ちなみにですが、今日を含まない7日前とありましたが今日の日付も含まれておりました。問題ないので全然大丈夫ですが!

こんにちは

あっ、すみません。最初の式は本日との比較部分で等号いれていなかったのてすが、二つ目は等号を入れてしまっていますね。こちらの等号を削除いただければと思います。

なるほど!
式の意味を理解できました!
ありがとうございます!

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.