- Home » 
- エクセル練習問題:目次 » 
- 時間の計算2
更新:2024/5/11;作成:2012/9/6
  
- 問題1:入場時刻と退場時刻が記録されています。滞在時間を時刻のシリアル値で出しなさい。
 ただし、入力されている時刻は3〜4桁の数値で入力されています。   問題1の解答
 
|  | B | C | D |  
| 2 | 入場時刻 | 退場時刻 | 滞在時間 |  
| 3 | 909 | 1705 |  |  
| 4 | 1108 | 1613 |  |  
| 5 | 1004 | 1709 |  |  
 
- 
|  | B | C | D |  
| 2 | 入場時刻 | 退場時刻 | 滞在時間 |  
| 3 | 909 | 1705 | 7:56 |  
| 4 | 1108 | 1613 | 5:05 |  
| 5 | 1004 | 1709 | 7:05 |  
 
- 入場時刻と退場時刻はシリアル値に直して、引き算で計算できます
- TIME関数を利用する方法です。
- 時は入力値を100で割った時の商になりますので、INT(C3/100)
 分は入力値を100で割った時の余りになりますので、MOD(C3,100)
 秒は0とします。
- これらをTIME関数に入れれば時刻のシリアル値になります。
      
      
- TIME関数の使い方は 時間・時刻の関数 をご覧ください。
 =TIME(INT(C3/100),MOD(C3,100),0)-TIME(INT(B3/100),MOD(B3,100),0) 
- TEXT関数を利用する方法です。
- 表示形式で "0!:00" とすることで、時刻のシリアル値になります。
 TEXT関数での返り値は文字列ですが、四則演算でExcelが計算可能な文字列と判断して計算してくれます。
 よって、D3セルは =TEXT(C3,"0!:00")-TEXT(B3,"0!:00") とします。
- TEXT関数の使い方は TEXT関数 をご覧ください。
  
- 分単位に直して計算することもできます。
- 時は入力値を100で割った時の商になりますので、INT(C3/100) 、これに60をかけて分単位に直します。
 分は入力値を100で割った時の余りになりますので、MOD(C3,100) 、そのままです。
 D3セルは =((INT(C3/100)*60+MOD(C3,100))-(INT(B3/100)*60+MOD(B3,100))) で時間の差を分で求めることができます。
- 分単位で求めた結果をシリアル値に直すためには /1440 と1440で割る必要があります。
 D3セルは
 =((INT(C3/100)*60+MOD(C3,100))-(INT(B3/100)*60+MOD(B3,100)))/1440
 となります。
  
- 滞在時間も入力値と同じように、3〜4桁の数値にするには?
- TEXT関数を使って数値にすることができます。
 上記Bを例にします。
 =TEXT(TEXT(C3,"0!:00")-TEXT(B3,"0!:00"),"hmm")*1
 のように、TEXT(シリアル値,"hmm") とします。ただし、これでは文字列になりますので*1として数値にしています。
 
スポンサードリンク
Home|エクセル練習問題:目次|時間の計算2
PageViewCounter

Since2006/2/27