![Excel - 日付のシーケンス間の時間 +/- を追跡する](https://rvso.com/image/1575991/Excel%20-%20%E6%97%A5%E4%BB%98%E3%81%AE%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E9%96%93%E3%81%AE%E6%99%82%E9%96%93%20%2B%2F-%20%E3%82%92%E8%BF%BD%E8%B7%A1%E3%81%99%E3%82%8B.png)
Excel 2016 で、一連の日付/時刻スタンプの差を追跡し、実行中の合計を保持するスケジュールされたイベントを作成しています。
... | ETA | ATA | 差分 | 合計 | ... 11/20/18 8:00 11/19/18 12:00 (ETA - ATA) (差分 + 最終差分)
問題は、Excel が負の日付時刻を処理しないことです。したがって、何かがスケジュールより進んでいる場合、#VALUE になり、シリーズ全体が無効になります。
1904 の日付形式を使用しようとしましたが、常に少なくとも 1 日であり、さらにゼロの日付はなく、日付時刻が同じでも +1 日になります。
次に、TEXT() を使用してテキストに変換しますが、日付ではなくなり、負の日付が依然として問題となるため、次のイベントに使用することは実際には不可能です。
他の唯一のオプションは、日数/時間/分を別々の非表示の列に分割し、各日付ごとに日付/時刻ごとに変換/追加するか、その他の愚かな操作を行うことです。
私が見逃している正または負の日時の実行中の合計を保持する他の方法はありますか?
答え1
Excel では日付/時刻の値は として表されるためDouble
、当然ながら計算は簡単です。問題は列の書式設定にあると思われますDiff
。この例では、
| A | B | C | D | ... | AA |
| ETA | ATA | Diff | Total | ... | Helper |
|------------------|:----------------:|:------------:|:--------:| ... |:------:|
| 11/20/2018 8:00 | 11/19/2018 12:00 | 00:20:00 | | ... | =A2-B2 |
| 11/19/2018 12:00 | 11/20/2018 8:00 | -00:20:00 | =AA2+AA3 | ... | =A3-B3 |
列Diff
は日付ではなく、一般としてフォーマットされています。Diff列の数式は
=TEXT((A2-B2)*24,"#0.00")&" hours"
もちろん、必要に応じて調整することもできます。
上記の回答を拡張して、「ヘルパー」列を使用します(右端にある場合でも)
代わりに、Diff
列では次のような式を使用します。
=IF(A2>=B2,TEXT(A2-B2,"dd:hh:mm"),"-"&TEXT(B2-A2,"dd:hh:mm"))
これにより、値がきれいに表示されます。ただし、右端の列 (おそらくAA
) では、簡単な数式 を使用します=A2-B2
。その後、Total
列に戻って、正の数と負の数を含めた実行合計を実行できます。