データテーブル内の列を使った計算

データテーブル内の列の値を使って、計算を行いたいのですが、方法が分かりません。Excelに計算させるのが安易なのだと思いますが、UiPathで計算する方法があればぜひ知りたいです。

元のExcelファイルには、部署、氏名、設計作業(分)、PG作業(分)…などの値が入っています。
範囲を読み込みして、データテーブルに格納したのですが、
部署ごとのファイルをRPAで作成する際に、分単位の列を、時間単位に変換して、ファイルに出力したいのですが、データテーブルの値がオブジェクト型と認識されていて、計算ができません。
何か良い方法はありますでしょうか?

「範囲を読み込み」アクティビティでシートを読み込んだ領域は、Object属性の列を持つDataTable型になります。そのセルに相当する値を利用するには、一度.ToStringで文字列化すると便利です。

お問い合わせの分単位でしたら(例えば150分)でしたら、
Math.Floor(CInt(Rows.item(“分”).ToString) / 60)
などとして、小数部をカットし、時間を得ます。

同様に、数値化した結果から計算します(CInt(Rows.item(“分”).ToString) - 時間 * 60)

それを日付型にするのに、New DateTime(時間,分, 0)で変換しましょう。

はなっち様
ありがとうございます!
時間と分への分け方は、ご教示いただいたやり方で、算出することができました。
New DateTime(時間、分、0)の変換のやり方が分からず・・・
時間と分をString変数に代入して、Excelへ出力するのはできたのですが。
New DateTimeとする場合は、書式設定も必要でしょうか?

例えば、EXCELにまた貼り付けるのであれば、時間.ToSTring & “:” & 分.ToString & ":00"でDataTable中の列に格納してあげて、それを範囲を書き込みアクティビティで書いてあげれば、EXCELが自動解釈して時刻的表現にしてくれるでしょう

はなっち様

解決しました!
ありがとうございます。

1 Like

おぉ!よかったです!

人の手だったら分かる事を、ロボットに教えてあげないといけないってのは、結構まだるっこしいですね。

ワークシート関数でサササッと解決できそうなものは、StudioXって奴で解決できそうな気分になりつつあります。まだ経験値は低いのですが。。。

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