若手SEの生き様

クサカンシのブログ

クサカンシとは好奇心とプレッシャーの狭間で学び続ける者、、そう拙者でござる!

【Excel】数値を時刻として計算する方法

どうも、クサカンシです(^-^)

よく時刻の表記を6桁のhhmmssで表現することがあると思いますが、これってExcelだとただの数値の扱いになるので、計算するとき不便なんですよね(^^;)

今回hhmmss形式の数値を計算することがあったので、その方法を記載します。

今回やったこと

ある機能の処理時間を計測する際に、下記の表を作成しました。

f:id:MasakiMN:20190528110636p:plain

 ・開始:処理の開始時刻をhhmmss形式で記載(例:9時18分28秒⇒91828)

 ・終了:処理の終了時刻をhhmmss形式で記載(例:9時20分49秒⇒92049)

 ・経過:開始から終了までに経過した秒数を記載(今回説明する部分です)

 ・平均:各計測結果の平均を記載

TEXT関数で変換後に計算し、単位を秒に修正する

では「経過(秒数)」列に使用した式を紹介します。じゃじゃーん

=(TEXT(C4,"00!:00!:00")-TEXT(B4,"00!:00!:00"))*86400

では各関数の役割を説明します。

TEXT関数

これは指定した数値(C4セル)を指定の形式(hh:mm:ss)に変換する役割をします。数値のまま計算をすると単純な数値として計算されるため、データの形式を時分秒にしてから計測します。数値のままですと「20分49秒 - 18分28秒」の計算が「2049 - 1828 = 221」となってしまうので、形式を指定してから計算を行います。

※参考

www.eurus.dti.ne.jp

単位を秒に修正

TEXTだけでの計算結果は時分秒になっているので、この結果を秒に変換してあげます。手順は簡単で計算結果に「86400」を掛け算するだけです。ちなみにこの「86400」は1日の秒数です。

※参考

koumuroom.com

 

せっかくだから単位を秒から分に直す

経過時間の秒数は確認できましたが、正直見づらいので分に直しましょう。

では分表記を追加した表と、式を紹介します。じゃじゃーん

f:id:MasakiMN:20190528113410p:plain

=INT(D8/60)&"分"&TRUNC(MOD(D8,60),2)&"秒"

では各関数の役割を説明します。

INT関数

INT関数は計算結果の整数部分を取り出してくれます。これを利用して秒数割る60で分の値を出します。

MOD関数 

MOD関数は割り算の余りを取り出す関数です。これを利用し、秒数の結果から分を取り除いた余りを取り出します。これが〇分△秒の△の値になります。

※参考(INTとMOD)

kokodane.com

TRUNC関数

TRUNC関数は小数点以下の桁数を指定して表示してくれます。僕は〇分△.XX秒と小数点以下2桁を表示したかったので、今回利用しました。

※参考

www.excel-list.com

まとめ

数値を時刻として計算するには関数を駆使する必要があるので面倒です。

それなら最初から数値ではなく日付形式にして「2019/5/28 11:26:00」と入力したものを計算する方が簡単なケースもありそうですね。

今回は計測結果を秒数でほしかったので、まあ調べて損はありませんでした(笑)

 

実際に利用している式は下記の通りでした。

f:id:MasakiMN:20190528112319p:plain

 

ではでは、ありがとうございました(^-^)