ランダムに記載された時間を計算する仕組みを作りたい

現在かなり悩んでいる内容で、Excelはもちろん、
UiPath等のツールを使って解決できないかと考えております。

記載されている時間を抽出して経過時間を合計して出力する
ということをしたいのですが、元データの形がかなりぐちゃぐちゃです…。
※時間の有無や書いてある位置

現在、行にデータがなければ次の行へ進み、
データがあればまずその中で時間を示す値があるかをチェック、
あれば抽出、なければ次の行を確認…
のようなことを考えてはいるのですが、なかなかうまくいかず…
dummy_data.txt (7.3 KB)
このままでは難しいと思うのですが、
時間の部分だけ抽出したり、データの形を綺麗にする等、
似たような事象を解決した際のヒントをご存じでしたらご教示いただけますと幸いです。

Hi @saltyayumu

テキストファイルの[時間]の合計のみが必要ですか?

ご回答ありがとうございます。
実際には○○の作業の経過時間が必要です。
例)・【日次定型】 BNV04940 9:15~ 9:45 グローバルチェック の場合
【日次定型】 BNV04940 グローバルチェック 0:30

ただ、そこまではかなり難しいと思うので、
まずは部分部分の時間の合計が出すことができないかなと考えてはいます…。

@saltyayumu

「[…]」のパターンにあるように、すべての時間を取得できます。すべての時間を抽出して合計するために正規表現を使用できます

ご回答ありがとうございます。
知識不足で申し訳ございません。
UiPathのどの機能を使えば取得できそうでしょうか?Assign等?
※諸事情によりUiPathのバージョンが古いのでもしかしたらできない可能性もあります…

かなり力技ですが…

ランダムに記載された時間を計算する仕組みを作りたい.zip (13.8 キロバイト)

1)テキストを読み込み、Crを除去し、Lfで文字列配列化する。
2)その配列の中から、"~"があるものを対象とする。
3)"~"以前の文字と、"~"以後も文字とに分ける
4)以前の文字は、右側から5文字を自時刻とする。
5)以降の文字は、左から5文字を至時刻とする。

ってな具合で、処理結果をログに出力します

@saltyayumu

パターンに合格する必要がある「マッチ」アクティビティを使用できます。それについては、\regex101: build, test, and debug regex を参照してください。

すべての一致を取得したら、1つずつループして合計する必要があります。

1 Like

コロン(:)をサーチして、見つかったらその前後の数字max2桁を拾い出せば時刻が取れる。(数字もしくはブランク以外が混じってたら時刻じゃ無いのでそのコロンは無視) 取り出した時刻と時刻の間に「〜」が居たら、後ろの時刻から前の時刻を引いて差分出す。
こんな感じでできませんかね?

2 Likes

ご回答ありがとうございます。
サンプルフローまで添付いただき、大変助かります。
おかげさまで対象の各日付を取得することができました。
こちらを計算に当てはめて、経過時間を出せるようにしたいと思います。

かなり困難だと思うのですが、実際には作業の経過時間が必要です。
・【日次定型】 BNV04940 9:15~ 9:45 グローバルチェック の場合であれば、
【日次定型】 BNV04940 グローバルチェック 9:15/9:45
のような形で取得したいのですが…

厄介なことに下記のようなものもあります。

・【月次定型】(PP)管理情報の抽出(332154)
10:30~11:00
上記の場合でも【月次定型】(PP)管理情報の抽出(332154)10:30/11:00
のような形で取得したいです。
文字数を取得したり、改行の消し方を変えたりと考えてはいるのですが、
もし何か思いつく点などございましたらご教示いただけますと幸いです。

以上、何卒宜しくお願い致します。

ご回答ありがとうございます。
頂いたものは勉強不足でまだ理解が足りませんので、
学びつつ紐解いていきたいと思います。
大変助かりました。ありがとうございます!

サンプルでは、配列に格納しているので、例えば「自~至」しかない配列であれば、配列数を-1なんなりして、一つ上の文字列を取得、組み合わせていくのです。

いろいろなケースを上げ始めたらキリがないので、あとはモグラ叩き的に現場での実装を頑張ってくださいませ。

ご回答ありがとうございます。
時間の特定と対象分の抽出方法はご教示いただいた内容でやってみようと思います。
その時間はどの作業のものなのか、
というものを組み合わせて表示できるように考えている次第でございます。
(データが綺麗ではないので無理そうではありますが…)

ご助力、大変助かりました!!

1 Like

ご回答ありがとうございます。
サンプルは一部だけですので、全パターンに対応できる分岐を設定して色々試してみようと思います。

ご助力くださいまして、大変助かりました。
ありがとうございました!

是非ベストな解法をみつけてくださいね!

解決できたなと思った書き込みの解決策にチェックをお願いしますね。

1 Like

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