T_Hirao1
(T Hirao)
1
お世話になります。
Googleフォームの回答情報をシステムに登録するロボットを作成しております。
当初は当日16:30までの回答だけを抽出すればよかったのですが、16:30以降の回答がちらほら出てきたので、前日の16:30以降の回答も一緒に抽出することになりました。
今まで日付だけで抽出していたので、"16:30~"というフィルターを掛ける方法が分からず困っています。
フィルターの掛け方について教えてください。
参考として、今のフィルタ方法を記載します。
代入で
左辺:[対象のデータテーブル]
右辺:[対象のデータテーブル].AsEnumerable.Where(Function(r) CDate(r(“タイムスタンプ”).ToString).Date=DateTime.Parse(DateTime.Now.ToString(“yyyy/MM/dd”))).CopyToDataTable
よろしくお願いいたします。
cheez_RPA
(いわさき りょうすけ (UiPath Japan MVP 2019 - 2021))
3
フィルダー条件を変更するだけでOKだと思います。
前日の16時30分 => 当日の日付を -1日 進み(=戻り)、それに16時間と30分を足す(※元のデータが日付だけであり時刻の情報がない(=0:00)ので)
[対象のデータテーブル].AsEnumerable.Where(Function(r) CDate(r(“タイムスタンプ”).ToString) > Today.AddDays(-1).AddHours(16).AddMinutes(30)).CopyToDataTable
ただしこの条件の場合、プロセスを実行したタイミングによっては取得するデータの抜け・重複が発生しえます。
- プロセスが 16:30より早く動作した場合(e.g. 16:20)、16:20〜16:30に追加されたデータが抜ける
- プロセスが 16:30より遅く動作した場合(e.g. 16:50)、16:30〜16:50に追加されたデータが翌日にも取得される
そのため、フィルタ条件として 「hh:mm 以降」に加え「hh:mm まで」の条件も加えたほうがいいかもしれません。
1 Like
T_Hirao1
(T Hirao)
4
Gokui001さん
cheez_RPAさん
アドバイスありがとうございます!
おかげで解決することができました!
1 Like
system
(system)
Closed
5
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.