- 締切済み
エクセルで日:時間:分:秒表記の文字列の合計
あるソフトからエクスポートしたCSVファイルの情報からエクセルで合計時間等を算出したいのですが、CSVの時間の表記が 02:04:52:10 (dd:hh:mm:ss) のようになっています。 楯列に並んでいる上記の時間(数値は様々)の合計を出したいのですが、どのような計算式で求められるでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- msMike
- ベストアンサー率20% (364/1805)
- nishi6
- ベストアンサー率67% (869/1280)
添付図の説明ですが、例として、質問にある時間「02:04:52:10」をセルA1:A1000に入力しています。 B列は、 B1セル:=INT(LEFT(A1,2))+RIGHT(A1,8) として、(見た目)日付連番を表示しています。 合計時間として、 セルC1:=INT(SUM(B:B))&":"&TEXT(MOD(SUM(B:B),1),"hh:mm:ss") としています。 変なことをしています。理由としては、A列と同じ表示形式(日:時:分:秒)を使うと、計算結果が正しくても、合計時間が一ヶ月の日数(1900年1月の日数)を超えると、月表示、年表示されるようになり、日部分が(見た目)正しく表示されません。日部分を32日以上表示する書式がないからです。 そのために、合計時間の整数部分である日数計と、小数部分の時分秒計を別に処理して文字列連結しています。無理矢理の表示なので、日数計と時分秒計を別に表示する方法が計算に使えたりして賢明でしょう。 当方、Win10、Excel2010です。ご参考に。
- imogasi
- ベストアンサー率27% (4737/17069)
質問趣旨を誤解していたら読み飛ばして。 A列にデータを貼り付け。例 02:04:52:10 文字列でしょう A列に対し、データー区切り位置ー:(半角コロン)で A-D列にそれぞれ 2 4 52 10 と分かれるでしょう。 F列に =DATEVALUE("2019/10/"&A1) G列に =TIMEVALUE(B1&":"&C1 &":"&D1) で、エクセルの日付シリアル値(1900年1月1日を1とする何日目かの序数)、時刻シリアル値(24時間を1とする)になります。 F、G列のセルの書式を、日付や時刻に設定しておきます。 ーー 2をカレンダー日付でなく、24時間X2(日にち)で処理するようなことなら、B,C,Dで、G列に作った時間に、A1*24を加える式を作れば、良いでしょう。 あとは適当に加算(合計)なりの演算の式をF,G列に対して式を作ってください。 セルの書式を、24時間越えを許す[h]を設定しておく。 参考 Google照会 「excel 24時間越えの出し方」 24時間を超える時間を正しく表示するには? https://www.jpita.or.jp/simin/index.php?excelziten431 Excelでは、日付や時刻の計算は、日付シリアル値や時刻シリアル値にしないと どうしようもないです。(この点の理解がない質問者が多いようだ) ーー 直接02:04:52:10のようなっデータを直接の対象にしない方が易しい。 (オフライン・バッチ的作業ならば)
お礼
詳しい説明をありがとうございます。 日付シリアル値や時刻シリアル値等も知りませんでした。 やってみます。
- aokii
- ベストアンサー率23% (5210/22062)
B1セルから下に、A列の日数を算出する数式を入れて、 =MID(A1,1,2)+MID(A1,4,2)/24+MID(A1,7,2)/24/60+MID(A1,10,2)/24/60/60 任意のセルに以下の式を入れて、合計時間(hour)を算出 =SUM(B:B)*24
お礼
なるほど。こういうやり方もありますね。 エクセルに不慣れなもので。 たすかりました。 ありがとうございます。
お礼
解説までつけていただいてありがとうございます! やってみます。