数字で条件分岐したい

お世話になります。ui path初心者です。
EXCELシートの

A列(日時) B列(名前) C列

2020/6/1 14:50 山田太郎
2020/6/1 17:16 田中次郎
2020/6/2 8:10 遠藤三郎
2020/6/3 8:30 佐藤四郎
2020/6/4 8:56 斎藤五郎

を読み込み、条件分岐を使って
「日時が6月中で、かつ時間が当日17時15分から翌日の8時29分までの間のとき」
trueでC列に丸を入力する、といった流れにしたいです。
なお、このEXCELシートには前月や後月のデータもあります。自分の可能な限りの知識で作ってみて
condition
row(“日時”)=New DataTable(2020,6,1,17,15,0) between
New DataTable(2020,6,2,8,29,0)
日にちは1日ずつ変数なり使って増やして繰り返しさせようかなと考えましたが当然ながらうまく行きません…。月末は次の日には月も変えないと。。。
アドバイスよろしくお願い致します。

数字で条件分岐したい.zip (10.8 キロバイト)

日時列をDateTime型に変換し、その日の17:15を求め、更にその日の翌日で且つ8:29を求めます。
日時の月が6で且つ、範囲内だったら○を設定し、”Sheet2”に展開するロボです。

主要アクティビティに注釈をいれてありますので、ご参考にどうぞ!

こんにちは

読み込んだDataTableに対するForEachRow内で

d = DateTime.Parse(row("日時").toString) 
t= d.TimeOfDay

としておいて (d DateTime型、t TimeSpan型)

条件式は

d >= new DateTime(2020,6,1,17,15,0) AndAlso d < new DateTime(2020,7,1,8,30,0) AndAlso (t < new TimeSpan(8,30,0) OrElse t>= new TimeSpan(17,15,0))

としてThen側に

row(“判定”) ="〇"

のような感じでいかがでしょうか?

返信ありがとうございます。
作ってみて実行してみましたが、17:15〜23:59までは
丸をつけることができましたが、0:00〜8:29まで丸を
つけることができませんでした。

返信ありがとうございます。
作ってみてみたのですが、丸をつけることが
できませんでした。

こんにちは

サンプルupしておきます。ご確認ください。

Sample20200616-1.zip (33.8 KB)

基準日をA列から持って来ているので、翌日分には丸はつきませんねo
基準日を固定的に、2020/6/1とすると、田中次郎さん、遠藤三郎さんは丸になるはずです。

ですので、勤務開始時刻列があって、それを基準にして、勤務終了時刻で評価するようにしないといけませんね。

For Each の内で:
ifのCondition:

DateTime.Parse(row.Item(“日時”).ToString).TimeOfDay > TimeSpan.Parse(“17:15”) Or DateTime.Parse(row.Item(“日時”).ToString).TimeOfDay < TimeSpan.Parse(“8:29”)

Then:

row.Item(“判定”) = “〇”

ご確認ください。

皆様、返信ありがとうございます。明日試してみます。

2 Likes

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