• 締切済み

Excel 時刻の計算方法

Excel 時刻の計算方法 セルA 10/26/2010 06:54:32 セルB 10/27/2010 12:34:56 このような状態で、セルCにhh:mm:ss形式でAの時刻からBの時刻までにかかった時間を表示させたいのですが どうすればいいのでしょう

みんなの回答

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

実際に例示のような「文字列」で入力されていて、セル間の引き算ができないなら、以下のような操作で一括してシリアル値に変換してから計算するのが簡単です。 「スタート」「コントロールパネル」で「地域と日付、時刻」の「地域と言語」の設定ダイアログを出、形式を「日本語(日本)」から「英語(米国)」に変更します。 次に、完全にシリアル値にするため、その列を選択して「データ」「区切り位置」で「完了」します。 このようにしておけば、地域と言語の設定を「日本語(日本)」に戻しても日付シリアル値として認識されますので、通常の引き算を行い、セルの書式をユーザー定義で「[h]:mm:ss」にしてください。 OSやエクセルのバージョンによって、操作法や機能が異なりますので、質問の際には必ずバージョンを明記するようにしましょう。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

文字列で入ってしまっているらい。 2010/10/26の形で入力されていると、 =DATEVALUE(LEFT(B1,FIND(" ",B1)-1))+=TIMEVALUE(RIGHT(B1,LEN(B1)-FIND(" ",B1))) で日付+時刻セリアル値になってくれて、A1セルのそれと、引き算をして、書式を[h]:mm:ssにすれば良いと思うが、10/27/2010 ではうまく行かない。 -- 元の値がが日付シリアル値で無い(文字列な)ので=DATE(YEAR(B1),MONTH(B1),DAY(B1))もうまく行かない。 この月・日・年の形式の入力は困ったものだ。 ーー どれも今年(同年)の話なら、REPLACEや置換操作で、両セルの/2010を削除して =B1-A1の式をC1に入れ、表示形式を[h]:mm:ssにすると、29:40:24になる。 これなら普通のやり方だ。 ーー /を頼りにFIND関数で月、日、年に分けて、DATE関数に持ち込む方法もあるが、式が長くなって、書く気がしない。 良い回答が出れば、私も勉強します。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

月や日にちを必ず二桁の数値で入力している場合でしたらC1セルに次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTA(A1:B1)<>2,"",VALUE(MID(B1,7,4)&"/"&LEFT(B1,5)&" "&MID(B1,12,10))-VALUE(MID(A1,7,4)&"/"&LEFT(A1,5)&" "&MID(A1,12,10))) あるいは2010年などと年が決まっているのでしたら次の式でもよいでしょう。 =IF(COUNTA(A1:B1)<>2,"",VALUE("2010/"&SUBSTITUTE(B1,"/2010"," "))-VALUE("2010/"&SUBSTITUTE(A1,"/2010"," "))) いずれの場合でもC列のセルの表示形式は次のようにします。 [h]:mm:ss hh:mm:ssの場合は24時間以上では正しい表示とはなりません。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 今仮に、セルAのセル番号をA1、セルBのセル番号をB1、だとします。  もし、セルAとセルBに入っているデータがシリアル値である場合には、 まず、セルCには次の数式を入力して下さい。 =B1-A1  そして、セルCの[セルの書式設定]の[表示形式]の[分類]欄を、[ユーザー定義]とした上で、[種類]欄には次の様に入力して下さい。 [h]:mm:ss  因みに、セルCの[セルの書式設定]に関しては、[セルの書式設定]の[表示形式]の[分類]欄を[時刻]、[ロケール(国または地域)]欄を[イタリア語(イタリア)]とした上で、[種類]欄を 37:30:55 形式にしても同じ表示とする事が出来ます。  尚、セルAとセルBに入っているデータがシリアル値ではなく、文字列データである場合には、セルCに入力する数式を、次の様に変更して下さい。 =DATEVALUE(MID(B1,FIND("/",B1,4)+1,4)&"/"&LEFT(B1,FIND("/",B1,4)-1))+TIMEVALUE(RIGHT(B1,LEN(B1)-FIND("/",B1,4)-5))-DATEVALUE(MID(A1,FIND("/",A1,4)+1,4)&"/"&LEFT(A1,FIND("/",A1,4)-1))-TIMEVALUE(RIGHT(A1,LEN(A1)-FIND("/",A1,4)-5))

  • Saturn5
  • ベストアンサー率45% (2270/4952)
回答No.1

まず、入力を日付・時刻入力にしてください。 日本語版Windowsでは年/月/日 でないといけません。 たとえば、2010/10/26 06:54:32 です。 その後、右クリック [セルの書式設定]→[表示形式]→[ユーザー定義] で、mm/dd/yyyy を指定すれば、目的の形式で表示されます。 こうしておくと、セルCにはB-Aの数式を書いて、 表示形式をhh:mm:ss にしておくと経過時間が出ます。

関連するQ&A

専門家に質問してみよう