アプリ版:「スタンプのみでお礼する」機能のリリースについて

ある日時から、一定時間置きに観察記録を残しているとします。
その観察記録を残した月日と時間をB列とC列に示しています。
以下図の場合、12/16 12:00から観察を始め、12/20 13:21に観察を終了しています。
このとき、D列には、開始日時からの経過時間を、時間単位で示すための関数を教えて下さい。
(※開始時間を必ず、0時間(始点)として累積で経過時間を足し続ける関数を知りたいです)
どなたかお分かりの方、教えて頂けないでしょうか?
可能な限りシンプルな関数の方が、有難いです。宜しくお願いします。

「【Excel】 開始時間からある日時まで」の質問画像

A 回答 (5件)

添付画像をご覧ください。


ご質問者が掲出されたようなデータがあったとして、D3セルに

=((B3+C3)-($B$3+$C$3))*24

という数式を入れて下方向へコピーすればご希望の結果となると思います。

なお、小数点以下の桁数を揃えるため、表示形式はユーザー定義で「0.00」としています。
「【Excel】 開始時間からある日時まで」の回答画像1
    • good
    • 0
この回答へのお礼

goomania様」
早いご回答ありがとうございます。
画像まで示して頂いたので、とても飲み込みやすく良かったです。
試した結果、目的の結果が算出できたので有難かったです。
感謝いたします。

お礼日時:2023/06/18 09:16

No.1です。


No.2さん、No.3さんの回答を読んで、注意事項を漏らしていたことに気づきました。

前回回答で数式を回答しましたが、日付の入力については注意事項があります。観察記録の日付ですが、
(1)何らかの観測システムから自動的に取得されてEXCELに渡される
(2)観察後、手入力で入力している
のどちらでしょうか?

(1)の場合、常識的には「年月日」がEXCELに渡され、表示上「月日」を表示しているものと思われますので、問題はないと思います。
(2)の場合、観測日当日に「月日」を入力するなら問題ないのですが、観測記録を後日EXCELに「月日」で入力する場合は問題が発生する可能性があります。

添付画像をご覧ください。この画像は2022年12月30~2023年1月4日までの観察記録の日付を2023年1月4日に月日で入力しようとした例です。

EXCELでは年を省略して月日を入力した場合、システム内の日付の年号を補完した日付として扱います。つまり2023年1月4日に2022年12月30日のつもりで「12/30」と入力すると、自動的に「2023年12月30日」と認識されてしまいます。その結果、「日付の逆転」が発生し、添付画像のような、おかしな結果が表示されることになりますので注意が必要です。

このような事態を避けるにはNo.3さんのご指摘のように、日付は年号まで含めたもので入力することをお勧めします。
「【Excel】 開始時間からある日時まで」の回答画像5
    • good
    • 0
この回答へのお礼

goomania様」

追加で補足説明ありがとうございます。
ご質問の件、(2)の方に該当します。
ご指摘の通り、「日付の逆転」については今後、支障となる部分ですので、注意します。申し訳ございません。

お礼日時:2023/06/18 09:24

》 関数を教えて下さい。


カンスウもヘッタクレもありしぇんッ!
現代なら、就学前の幼児でもできそうな足し算&引き算だけ、です。

添付図参照(Excel 2019)
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄↓↓↓↓↓↓↓↓↓↓↓↓↓
「【Excel】 開始時間からある日時まで」の回答画像4
    • good
    • 0
この回答へのお礼

mike_g様」

シンプルにご回答頂き、ありがとうございます。
助かります。

お礼日時:2023/06/18 09:23

関数を使うよりも普通の四則演算でOK。



・・・
そのために Excel の特徴を知りましょう。

まずは、Excelの日付と時間は「シリアル値」と呼ばれる数値で管理されています。
「1900年1月1日 0:00:00」から24時間ごとに「1」繰り上がる数値で日付を管理し、
小数点以下の数値で時間を示しています。(0.5日が12時間……のような感じ)

つぎに、日付や時間を示す「文字列」は「シリアル値」として「演算」され演算の結果は「シリアル値」に変換されます。
( ”2023年6月12日” という文字列と ”1:20:00” という文字列を足し算すると
 「2023年6月12日 1時20分0秒」を示すシリアル値「45089.05556」になるということ)

最後に、マイナスの数値を日付や時間として表示することはできません。
特殊な設定をしない限りエラーになり、セルいっぱいに「#」が連続で表示されます。
(「########」みたいに)

Excelにおいて日付と時間はこのような特徴があります。

・・・

これを踏まえて、改めて考えると

 (後の日付と時間)-(前の日付と時間)
の計算すれば、素直に差の「シリアル値」を取得できます。
さらにそのシリアル値を24倍すれば「時間単位の数値」になることが分かると思います。

ここまでは前の回答者さんたちが数式を示しています。

あとはエラー対策として終わり。
IFERROR関数でも使えばよいでしょう。


・・・余談・・・

年を跨ぐことを考慮して「年」も日付に加えることを勧めます。
表示が長くなるという事であれば、セルの表示形式で "m/dd" としておけば年を表示せずに済みます。
表示されていなくても「年」を含むシリアル値になります。
    • good
    • 0
この回答へのお礼

銀鱗様」

日付の関数が苦手な自分でしたが、シリアル値の考え方勉強になります。
あと、確かに「年」が入ってないと後々管理しづらくなりますね、、、
実際、表示のされ方を気にしていたのは事実であり、表示形式で変更すれば、確かに気にしなくて良いですね。。。
ありがとうございます。

お礼日時:2023/06/18 09:22

D3セルに下記の関数を入力してからD3セルをコピーしてD4以下に貼り付けて下さい。



=($B3+$C3-$B$3-$C$3)*24

 尚、上記の関数の場合、月日と時刻が入力されていない行ではマイナスの値が表示されてしまいます。
 もし、月日と時刻が入力されていない行には何も表示させないようにするのでしたら、少々複雑にはなりますが、下記のような関数にされると良いと思います。

=IF(COUNT($B3:$C3,$B$3:$C$3)=4,($B3+$C3-$B$3-$C$3)*24,"")
    • good
    • 0
この回答へのお礼

kagakugasuki様」
goomania様のご回答と同様、シンプルな式で分かり易いです。
またおっしゃる通り、入力されてない行のマイナスの表示については、
入力後に気付き、そこも想定して解決策をご提示頂きありがとうございます。COUNT関数はよく使うので、自分にイメージしやすい関数で良かったです。
感謝いたします。

お礼日時:2023/06/18 09:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!