質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • Excel

    1540questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

excelの60進数で、計算を行う関数を教えてください

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 3,050

suban

score 17

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秒)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

checkベストアンサー

+1

王道

ご質問にある時刻表記は標準的な書式ではないので、自分で分解し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 17:13

    ありがとうございます。得られた数値を比較する事で、時差を簡単に計算できました。

    キャンセル

+1

まず数値を時分秒に分割しましょう。
時は数値を 10000 で割って端数を切り捨てたもの、分は数値を 100 で割って端数を切り捨て、さらに 100 で割った余り、秒は数値を 100 で割った余りです。

分割できたらこれを秒に直しましょう。時 を3600 倍したもの、分を 60 倍したもの、秒、これらの合計が数値を秒に直したものと言えます。

秒に直したら時間差を求めましょう。引き算で求まります。

時間差を求めたらそれを時、分、秒に分割しましょう。時は時間差を 3600 で割って端数を切り捨てたもの、分は時間差を 60 で割って端数を切り捨てたものをさらに 60 で割った余り、秒は時間差を 60 で割った余りです。

時分秒が求まり、それをもとの形式に戻すには、時を 10000 倍、分を 100 倍、秒、これらを合計してください。

これらは変数に入れながら段階的に処理するのが楽ですが、同じ計算が一つの計算式に何度も出てくるのが苦でなければ一度にできないことはありません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/08 17:11

    詳細な解説を戴き、誠にありがとうございます。

    キャンセル

+1

前提

「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)
という式で秒数が求められます。

単純に時間*60*24 + 分*60 + 秒の計算をしているだけです(^-^;


60進数の計算という見出しでしたが
・質問内容は単純な時間計算であったこと
・入力データが前ゼロ付きで純粋な数値形式とは思えなかったこと
から文字列を分解して時間計算する方法をご紹介しました。

参考になれば幸いです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/08 17:41

    「00:00:19」という表示が欲しかったのですが
    御指摘のとおりに修正すると、期待値が得られる事が
    解りました。誠にありがとうございます。

    キャンセル

  • 2017/02/09 09:09

    ご指摘の通りでした。質問内容は不十分でしが
    文字列データでしたので、文字列を分解して計算する方法が
    ベストでした。誠にありがとうございます

    キャンセル

-2

以下のURLを参考にしてください。

https://support.office.com/ja-jp/article/2-%E3%81%A4%E3%81%AE%E6%99%82%E5%88%BB%E9%96%93%E3%81%AE%E5%B7%AE%E5%88%86%E3%82%92%E8%A8%88%E7%AE%97%E3%81%99%E3%82%8B-e1c78778-749b-49a3-b13e-737715505ff6

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Excel

    1540questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。