Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2021)
数値を時間型に変換したい
投稿日時: 23/07/06 13:50:44
投稿者: mintonsan

お世話になっております。
 
A.一日の労働時間を10(日数)に8(時間)をかけて求めたセル
B.ある勤怠ソフトからエクスポートしたデータの時間量のセル
AとBを集計して時間量を求めたいです。
 
Aの書式は標準で計算式は "=10*8"
Bの書式はユーザー設定の[h]:mmで、"166:30"が表示されていて、データは"1900/1/6 22:30:00"となります。
 
合計:80+166.30=246:30を求めるような式を作りたいのですが、
うまくいきません。
 
どなたかご教示よろしくお願いいたします。

回答
投稿日時: 23/07/06 14:16:45
投稿者: Suzu

計算を行う為には、Excelにおける 時刻の扱いについて、知る必要があります。
 

引用:
Bの書式はユーザー設定の[h]:mmで、"166:30"が表示されていて、データは"1900/1/6 22:30:00"となります。

 
これは、あくまでも、表示形式 で希望に沿う表示になっているだけです。
 
そのセルの表示形式を、「標準」に変えます。
 
そうすると、「6.9375」になっているのが判ります。
 
6が、日付部分(1900年1月0日 を 0として、1増えると 1900年1月1日 になります)
0.9375 の 小数点以下部分が 時刻を表し、 1分は、1/24hr/60min = 0.000694444 が1分を顕す値になります。
 
これらを知らないと、80(時間) との足し算はできません。
 
 
先の 6.9375 を 時間部分だけ取得するには
 
いくつか方法がありますが、
 
簡単なのは、
 ・整数分が日付 つまり 24時間ですから、Int(6.9375)*24
  小数点以下部分の時刻を取得するには、Hour(6.9375)
   上記を足し算し、Int(6.9375)*24 + Hour(6.9375)
 
 ・小数点以下の 分 部分は、MINUTE(6.9375) で 30 を得る事ができます。
  これを、小数点以下の数値として表示したいのですから、 30を 100で除します。
 
 上記ふたつについて、加算をすれば 求める値がえられるでしょう。
 
= Int(6.9375)*24 + Hour(6.9375) + Minute(6.9375)

回答
投稿日時: 23/07/06 14:41:32
投稿者: hatena
投稿者のウェブサイトに移動

A1 に =10*8
B1 に 166:30
として、下記の式でいいでしょう。
 
=B1+A1/24
 
書式は [h]:mm
 
Suzuさんからも解説がありますが、エクセルの日付のシリアル値は1日(24時間)が1ですので、
80(時間)は24で割ればシリアル値になりますので、加算できます。

投稿日時: 23/07/12 15:31:51
投稿者: mintonsan

丁寧にありがとうございました。