excelのセルに、2つの時間データがあるのですが、この2つのデータの時間差を求めたいのですが
(セルのデータは時間ですが、時分はコロンで区切られておりません)
<例1>
時間データ1 075523 (7時55分23秒)
時間データ2 075542 (7時55分42秒)
時間差 19 (19秒)
<例2>
時間データ1 230154 (23時1分54秒)
時間データ2 230204 (23時2分4秒)
時間差 10 (10秒)
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
前提
「7時55分42秒」が「075542」という表記でしたので、常に6桁表記という認識で話を進めさせていただきます。
回答
結果についてですが、「時間差 19 (19秒)」という例を挙げていただきましたが、ここは具体的に19という秒を表す数値が欲しいのでしょうか?
それとも時間値「00:00:19」(値にすると0.00022)が欲しいのでしょうか?
結果が時間値でよいのなら話は簡単です。
まず「075542」という値を「07:55:42」という時間値に変換します。
これにはTIMEVALUE関数を利用します。
「075542」という値がA1セルに入っているとすると、
=TIMEVALUE(MID(A1,1,2)&":"&MID(A1,3,2)&":"&MID(A1,5,2))
という式で「07:55:42」という値が取得できます。
このように時間データ1・2をともに時間値1・2に変換してあげれば「時間値2 - 時間値1」の計算で「00:00:19」という時間値が取得できます。
結果を秒数で欲しい場合はさらにもうひと手間加える必要があります。
先の計算で求めた結果の時間値を秒数に変換する作業です。
時間値を秒数に換算するには、Hour関数、Minute関数、Second関数を利用します。
前述の結果の時間値がC1セルに格納されているとすると、
=(HOUR(C1)*60*24) + (MINUTE(C1)*60) + SECOND(C1)
という式で秒数が求められます。
単純に時間6024 + 分*60 + 秒の計算をしているだけです(^-^;
60進数の計算という見出しでしたが
・質問内容は単純な時間計算であったこと
・入力データが前ゼロ付きで純粋な数値形式とは思えなかったこと
から文字列を分解して時間計算する方法をご紹介しました。
参考になれば幸いです。
投稿2017/02/08 08:07
編集2017/02/08 08:12総合スコア3020
0
ベストアンサー
##王道
ご質問にある時刻表記は標準的な書式ではないので、自分で分解し60進数に変換して通しの秒数(秒単位)にそろえてから、減算して差を求めることが王道でしょう。
「時間データ」が数値だとして、式で書くなら
=QUOTIENT(時間データ,10000)*3600+QUOTIENT(MOD(時間データ,10000),100)*60+MOD(時間データ,100)
で時間差(通しの秒数)が求まるでしょう。時間データが文字列であれば、MIDで時分秒要素を切り出しVALUEで数値化します。
QUOTIENT:商を求めます
MOD:余りを求めます
MID:文字列から部分文字列を取り出します
VALUE:文字列を数値化します
##別解
まだデータが入っていないようでしたら、時間データ(時刻)側のセル書式(ユーザー定義書式)に "HHmmss"、時間差(秒数)を表示するセル書式のほうに"[ss]"などとしておけば、単に引き算を書くだけで秒数が表示されます。セルへの入力は"7:55:23"のように、標準的な時刻表記で入力します。
投稿2017/02/08 07:41
編集2017/02/08 07:58総合スコア728
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
まず数値を時分秒に分割しましょう。
時は数値を 10000 で割って端数を切り捨てたもの、分は数値を 100 で割って端数を切り捨て、さらに 100 で割った余り、秒は数値を 100 で割った余りです。
分割できたらこれを秒に直しましょう。時 を3600 倍したもの、分を 60 倍したもの、秒、これらの合計が数値を秒に直したものと言えます。
秒に直したら時間差を求めましょう。引き算で求まります。
時間差を求めたらそれを時、分、秒に分割しましょう。時は時間差を 3600 で割って端数を切り捨てたもの、分は時間差を 60 で割って端数を切り捨てたものをさらに 60 で割った余り、秒は時間差を 60 で割った余りです。
時分秒が求まり、それをもとの形式に戻すには、時を 10000 倍、分を 100 倍、秒、これらを合計してください。
これらは変数に入れながら段階的に処理するのが楽ですが、同じ計算が一つの計算式に何度も出てくるのが苦でなければ一度にできないことはありません。
投稿2017/02/08 07:34
総合スコア28673
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
関連した質問
excelの60進数で、計算を行う関数を教えてください
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/08 08:41
2017/02/09 00:09