nagumo
(asahi)
1
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”)
上記を全てフィルターに入れてみましたがフィルタリングされませんでした・・
どなたかよろしくお願いいたします。
Yoichi
(Yoichi)
2
こんにちは
データテーブルをフィルタアクティビティでの日時の扱いは、その形式を意識しないと
いけないといけないので、少々面倒なケースがあります。
別のアプローチとして例えば以下の式でフィルターできます。(今日を含まない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()
nagumo
(asahi)
3
ご回答ありがとうございます。
データテーブルの他の列にもデータが格納されていて、列1の日付でフィルターをかけて出力は別の列を指定したいんです・・
ちなみに出力したい列は13です。
最初に書いていなくてすみませんでした。
Yoichi
(Yoichi)
4
こんにちは
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
nagumo
(asahi)
5
出来ました!!
いつも本当にありがとうございます!!
ちなみにですが、今日を含まない7日前とありましたが今日の日付も含まれておりました。問題ないので全然大丈夫ですが!
Yoichi
(Yoichi)
6
こんにちは
あっ、すみません。最初の式は本日との比較部分で等号いれていなかったのてすが、二つ目は等号を入れてしまっていますね。こちらの等号を削除いただければと思います。
nagumo
(asahi)
7
なるほど!
式の意味を理解できました!
ありがとうございます!
system
(system)
Closed
8
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.