Excel (一般機能)

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

 
(Windows 10全般 : Excel 2016)
時間で入力したら日付+時間になっている
投稿日時: 22/05/01 19:19:47
投稿者: taichi

セル書式が「標準」のセルに
18:20と入力するとセルの値は18:20:00となり書式は h:mm に変更されています。
これは何となく納得ですが、
24時間を超えた(例えば月の残業時間計算etc)36:20と入力するとセル書式は
[h]:mm:ss に変更され 36:20:00 と表示されていますが、セルの値は
1900/1/1 12:20:00 のように日付+時間になっています。
何故 36:20:00 とならないのでしようか?
セル値が 36:20:00 となるようにする方法を教えていただければ助かります。
 
宜しくお願いいたします。
 

回答
投稿日時: 22/05/01 21:49:31
投稿者: Mike

》 何故 36:20:00 とならないのでしようか
[数式バー]上では、それが Excel の仕様だから。
日付の基準は、1900/1/1 で、時刻は 00:00:00 です。これを時刻だけで現すと 24:00:00 だけど数式バー上では 1900/1/1 0:00:00 で、1日=24時間 で辻褄が合うでしょ。
前日の午前零時、すなわち、1899/12/31 0:00:00 は時刻の始まりだけど、1900/1/1 以前の日付表示なしです。
 
》 セル値が 36:20:00 となるようにする方法を…
え?先ほど貴方は「セル書式は[h]:mm:ss に変更され 36:20:00 と表示されています」と仰ってたから、希望通りになってるのとチャイますか?

回答
投稿日時: 22/05/02 11:50:00
投稿者: WinArrow
投稿者のウェブサイトに移動

通常、セルには、「値」と「見た目」があります。
「値」は、数式バーに表示される(数式でない場合)
「見た目」は、表示形式を設定することで、実現できます。
   
例1:数値を見た目で分数にする場合
「値」:0.025
「見た目」:表示形式の設定:"?/??" →1/40
   
例2:日付の場合
「値」:2022/05/01
「見た目」:表示形式の設定:yyyy/m/d →2022/5/1
実は、日付には、もう一つ「値」が存在します。「値2」とします。
「値2」:44682
※「値2」のことを「シリアル値」といいます。
 「シリアル値」とは、簡単にいうと、1900/1/1を「1」とした連番のことです。
 つまり、1900/1/1から数えて44682日目ということです。
 Excel内部では、「値2」で使って計算しています。
 なお、1900/1/1に1日前は、1899/12/31になりますが、仕様では、「0」日となります。
   
例3:時刻の場合(<24:00)
「値」:10:20:00
「見た目」表示形式:h:mm →10:20
     ※表示系式を"[m]と設定すれば→620になります。
「値2」:0.430555556
※時刻(時間)は、少数点以下の数値になります。
 従って、24時の「値2」は、「1」ですから、日付の「1」つまり「1900/1/1」となります。
   
※日付や時刻は、数式バーに表示されているのも「見た目」の一つです。
表示のバリエーションが多いので、数式バーに表示されている「値」、実際の「値2」、「見た目」を区別して理解することをお勧めします。
   
なお、「値2」は、表示形式を「標準」に設定することで確認できます。
  
 

投稿日時: 22/05/02 21:33:43
投稿者: taichi

Mike さん、ありがとうございました。
WinArrow さん いつもありがとうございます。
 
労働時間で給与計算をするのに、
1900/1/1 12:20:00 のように日付と時間が混在になっているように
思えたので、正しい計算ができるのか不安でしたが、
 
68:20 と入力したら 1900/1/2 20:20:00 と出たので、
Mike の説明が理解できました。
 
これで安心して次に進めます。