Googleフォームの回答のタイムスタンプから、"前日の16:30~当日の16:30"の回答を抽出する方法

お世話になります。

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

よろしくお願いいたします。

Hi @T_Hirao1

Check out this thread

Hope it will helps

Regards
Gokul

1 Like

フィルダー条件を変更するだけで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

Gokui001さん
cheez_RPAさん

アドバイスありがとうございます!
おかげで解決することができました!

1 Like

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