エクセルがともだち

会社で一番のともだちがエクセル・・・のアラフィフパート事務員のつれづれ帳。備忘録もかねてエクセルのことやVBAのことを書いていくつもりです。

【Excel/関数】TIME関数は時・分・秒を指定せずとも秒に突っ込むだけで時分も計算してくれる

エクセルのTIME関数は TIME(時,分,秒)と入力すると時間のシリアル値にしてくれる関数。時間形式ではない数値を時間形式に変換してくれる関数です。

ちなみにシリアル値とは。。。

シリアル値についてはこちらのサイトが分かりやすかったです

日付と時刻のシリアル値とは - 日付関数 - Excel関数入門 (officepro.jp)

 

たとえば =TIME(2,30,40) と入れると 2:30:40 と時間に変換してくれる。

セルの値を利用して計算したりもします。

f:id:mwke:20210207105809p:plain

 

勤務時間や処理時間など前月と比較したりする場合に計算するとマイナスになることもあり、時間形式でマイナスだとエラーになってしまうので、時間の間隔の計算は秒単位、または分単位にしてから計算することがある。

なお、

「今回の処理時間は前回に比べて5489秒早かったです」

と、言われてもピンとこないだろうと思うので、秒で計算したものをまた時間形式に変換して返します。

f:id:mwke:20210207110938p:plain

 

で、例えば5489秒という値を時間に変換したいとき、わざわざ時間、分、秒に分けてTIME関数に入れていた。

 

「時」のところに5489を3600(1時間は3600秒)で除算して、切り捨てした値 1 を入れる。

「分」のところに5489から1 × 3600(さっき出した〇時間×3600)を引いた値を60(1分は60秒)で除算して切り捨てした値 31 を入れる。

「秒」のところに5489から1 × 3600(さっき出した〇時間×3600)を引いて、さらに 31 × 60(さっき出した〇分×60)を引いた値 29 を入れる。

とめんどくさいことをやっていた。

 

式にすると(上で書いたのとちょっと違うけど)

=TIME(ROUNDDOWN(5489/3600,0),
ROUNDDOWN*1*3600)/60,0),
5489-(ROUNDDOWN(5489/60,0))*60)

→1:31:29

 

それが

=time(0,0,5489)

→1:31:29

これだけでよかった!

 

なんとー

 

時、分には0を入れても省略してもどちらでも大丈夫。

f:id:mwke:20210207111812p:plain

ちなみに「分」に65を入れてみた。1時間5分と計算してくれた。

f:id:mwke:20210207112428p:plain

ちなみに「時間」に24を入れたら0:00:00となり、25を入れたら1:00:00となった。プラス1日とかはならないみたい。

「分」に30.5とか入れたら

30分30秒とか計算してくれたりして、とやってみたけど小数点以下は無視されるみたい。

f:id:mwke:20210207112614p:plain

以上です。

最後までお読みいただきありがとうございました。

 

TIME関数についてはこちらのサイトを参考とさせていただきました。

わかりやすくTIME関数が理解できました。ありがとうございました。

エクセル TIME 関数:時間を計算した結果を取得する (tipsfound.com)

 

時間、日付に関する記事はこちらもどうぞ

 

mwkexcel.hatenablog.com

 

 

 

*1:5489-(ROUNDDOWN(5489/3600,0