プロが教える店舗&オフィスのセキュリティ対策術

エクセルで秒で出ている数値を、*日*時間*分*秒の表記に直す方法を教えていただきたいです。
時間分秒では表せるのですが、日を含めて表すことができません。
以下のような関数を試してみたところ、分と秒が小数点になってしまいその小数点の切り捨て方もよく分からず…(そもそもこれで正しいのかも微妙なところです)
=INT(A1/24/60/60)&"日"&MOD(INT(A1/60*60*24),60)&"時間"&MOD(A1/60,60)&"分"&MOD(A1,60)&"秒"

もし簡単に表せる方法がありましたら教えてください。
よろしくお願いいたします。

A 回答 (4件)

No.2 の銀鱗さんの回答について



①「=TEXT(A1-86400,"d日h時m分s秒")」はたぶん「=TEXT(A1/86400,"d日h時m分s秒")」の記述ミスだと思います。
② そのままでは32日以降日数が正規になりません。「=INT(A1/86400) & "日" & TEXT(A1/86400,"h時m分s秒")」の方が良いと思います。
    • good
    • 0
この回答へのお礼

ご回答、ご指摘ありがとうございます!32日以降が正規にならないことも理解できました。
おかげ様で解決することができました。

お礼日時:2016/10/08 12:58

A1に秒を入れたら



=TEXT(A1/86400,"d日h時m分s秒")

シリアル値 0は1900年1月0日0時0分です。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます!おかげ様で解決いたしました。

お礼日時:2016/10/08 12:53

ごめん。

間違えた。
86400で割らなきゃいけなかった。
 =A1/86400
 =TEXT(A1-86400,"d日h時m分s秒")
と訂正します。
    • good
    • 1
この回答へのお礼

丁寧なご回答ありがとうございます!日付+時間の表記にすればよかったのですね…シリアル値をしっかり理解していませんでした。
おかげ様でとても助かりました。

お礼日時:2016/10/08 12:52

シリアル値に直してしまえば簡単。



例えば、A1セルに3612秒と入力されていたら、これを3600で割る。
 =A1/3600
これをセルの書式設定で「日付+時間」の表記にするだけです。
面倒なので、TEXT関数を使うと上の式はこうなります。
 =TEXT(A1-3600,"d日h時m分s秒")

・・・
日付と時間は1900年1月1日から数えて何日目になるかという数値で示されます。
1日で1、12時間で0.5といった感じに加算される数値です。
2016年10月8日の13時から2016年10月9日の8時まで、日付を跨いだ時間を計算するときも、
 "2016/10/9 8:00:00"-"2016/10/8 13:00:00"
のように日付を含めて計算するとあっさり結果を得られるのはこのためです。
(…ひょっとして、知らなかった?)
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています