111161
(みっきー)
1
みなさんお疲れさまです
データテーブルまたはエクセルファイルに、日付と時刻と超えた超えないフラグがあります
あるデータ量の閾値をフラグであらわしています
閾値を超えた範囲をエビデンスに残したいです
たとえば、以下のようなデータが格納されています
7/10 8:00 超えない
7/10 9:00 超えた
7/10 10:00 超えた
7/10 11:00 超えた
7/10 12:00 超えない
その時、9:00からら11:00まで超えてますとエビデンスに残したいです
どのような判定条件の実装が考えられますでしょうか?
与えられている情報を素直に解釈すると以下のやり方があるかと思います。
実装例(抜粋)
各変数の初期化(“”)
開始時間(startTime:String)
、終了時間(endTime:String)
、前時間(beforeTime:String)
excel範囲読み込み
データテーブルの繰り返し
判定1.
開始時間 = “” andAlso row(2).toString = “超えた”
true:開始時間 = row(1).toString
判定2.
開始時間 <> “” andAslo 終了時間 = “” andAlso row(2).toString = “超えない”
true:終了時間 = beforeTime
前回の値を保存
前時間 = row(1).toString
※繰り返し終了
出力:startTime & “から” & endTime & “まで超えてます”
※要件にあるかもしれないですが、考慮していないのは以下の条件です。
・日付が違うデータが存在する
・日時が順番通りにならんでいないデータが存在する
・超えたものの塊が複数存在する
例 超えない(×)、超えた(〇)、×、〇、×のようなデータ
・日付をまたいだ、超えたデータの塊がある
・超えた、超えない以外のデータが存在する
※※上の条件がある場合でも対応策はありますので、別途質問に追加していただければと思います。
※※Linqでmax,minを出すやり方の方が、理解されているなら簡単かもしれません。少なくとも見た目と行数はすっきりします。