• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2007関数 日をまたぐ時刻の計算)

Excel2007関数 日をまたぐ時刻の計算

このQ&Aのポイント
  • 時間を計測する場合、一方の日付が日をまたいだ場合どのような関数を配置すれば時間のみを計測することができるでしょうか?ご存知の方ご教示願います。
  • 現在生活時間の実態調査をするため、データベース形式で活動内容及び時間のデータを収集しようと考えています。ところが、「開始時刻」-「終了時刻」の差の時間を求めたときに、「終了時刻」が翌日の「1:00」など日をまたいだ場合に差を求められず#マークが表示されます。
  • #マークを表示させず時間のみを計測させるにはどのように関数式を記述させれば良いでしょうか?(添付画像の関数式)J5:=TIME(H5,I5,) M5:=TIME(K5,L5,) N5:=M5-J5

質問者が選んだベストアンサー

  • ベストアンサー
回答No.6

日付の導入について、ご質問にお答えします。 日付にも、時刻と同様、シリアル値が振られています。1900年1月1日(日)を1とし、その翌日が2、翌々日が3、…となっている自然数の数列です。 例えば、今日、セルに「3/12」と入力すると、Excelはこれを勝手に今年の日付だと判断してくれます。そのセルの書式によって、「日付」の書式「H24.3.12」とか、「ユーザー定義」の書式「3月12日」など様々に表示されます。入力後のセルにカーソルを置いていると、数式バーに「2012.3.12」などと表示されているので、数式バー内をクリックすることで他の年に編集することも可能です。 さて、2012年3月12日が入力されているセルの書式を「標準」にした場合、「40980」と表示されます。これがこの日のシリアル値です。つまり、1900年1月1日から数え始めて40,980日目であることを意味します。明日のシリアル値は1増えるので「40981」となります。 以上の説明と、「時刻は1日を1とする小数がシリアル値」ということを併せて考えると、どうしたらいいか見えてきたのではないでしょうか?例えば「2012年3月12日の23時」を1つの数で表すことができるのではないでしょうか?そう、足し算をすればいいですね?もしA1に「3/12」が、D1に「23:00」と入力されているならば、E1に「=a1+d1」と入力すれば、この瞬間の値が求められます。ただ、入力直後はE1の書式が時刻などに自動設定されたりするので、シリアル値を見るためには「標準」などに変更してあげましょう。「40980.95833」と表示されるので、1900年1月1日午前0時から40980.95833日後という言い方もできるでしょう。 あとは簡単ですね?上のようにして求めた2つの時点を表す小数どうしで、引き算するだけです。引き算を計算するセルに「時刻」の書式を設定しておけば、何時間何分という具合に表示されます。 また、この方法では、IFによる場合分けは不要で、とにかく引けばいいということになります。24時間でも48時間でも、1年後でも問題ありません。働きすぎにご注意(笑) それから、日付の入力の仕方が上とは異なっている場合も説明しておきます。A1、B1、C1の3つのセルに「2012」、「3」、「12」と入力されていることにより2012年3月12日を表している場合です。その場合、DATE関数というのを使うと、日付のシリアル値に変換できます。 「=date(a1,b1,c1)」あるいは「=date(2012,3,12)」とセルに入力し、そのセルの書式を「日付」などにします。「標準」ではやはり「40980」と表示されます。D1とH1に時刻が入力されている場合なら、「=date(e1,f1,g1)+h1-date(a1,b1,c1)-d1」などと計算してもいいですね。 ※Excelでは、文字列以外の式の入力において、大文字と小文字を区別する必要はありません。

dradra33
質問者

お礼

MarcoRossiItaly様 かなりご丁寧な説明ありがとうございます。 特に「シリアル値」のご解説がよく分かりました。 アドバイス参考にさせていただきます。 助かります。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (6)

回答No.7

No.6で一部、誤ったので、訂正します。ごめんなさい。  「「40980.95833」と表示されるので、1900年1月1日午前0時から40980.95833日後という言い方もできるでしょう。 」 →「……表示されるので、1899年12月31日午前0時から……」

dradra33
質問者

お礼

MarcoRossiItaly様 たびたびのご説明ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.5

翌日が前日の時刻より大きくなる 例えば開始が5:10で終了が6:10となることがなければ 次の式で翌日の時間に1を加えて前日の時間を引くで できます。 N5に =IF(M5<J5,M5+1-J5,M5-J5) 夜勤のアルバイトの給与計算 http://kokodane.com/tec3_5.htm

dradra33
質問者

お礼

gyouda1114様 ご回答ありがとうございます。 お礼が遅くなり恐れ入ります。 上記のIF文参考にさせていただきます。 また合わせてURLも参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

No.3さんに賛同します。 No.3さんの式を入力。次に、そのセルの書式を「ユーザー定義 h:mm」などに設定すると、時間として表示されます。 時刻が入力されているセルの書式を試しに「標準」などにしてみると、「22:10」は「0.923611111」と、「1:15」は「0.052083333」と変化します。これは、時刻のシリアル値が表示されている状態です。 このシリアル値は「24時間=1」とする小数です。「0.923611111」とは、「0.923611111日」のことです。ですから、No.3さんの式で「1」を足しているのは、24時間後の時刻に直すという意味です。 「#」が表示されている状態は、負の数に対して時刻などの書式が設定されていることを意味しています。Excelにとってみればエラーではなく、そのように表示することになっているだけです。ですから、単に時刻に足し算をすれば、24時間後に変更され、「#」でない時間が表示されます。 ただ既出の式では、計算結果が例えば「25時間」となるべき場合に、それより24時間少ない「1時間」となってしまう点が気になります。お示しのデータで、答えが24時間以上になるケースはあり得るのですか? 通常、データベースを作る際は、時刻だけでなく日付も記録することが多い気がします。そうであれば日付を式中に導入することで、計算ミスが出ないようにもできそうですが?

dradra33
質問者

お礼

MarcoRossiItaly様 ご回答ありがとうございます。 お礼が遅くなり恐れ入ります。 お時間がございましたら、 補足質問もご確認いただければ幸いです。

dradra33
質問者

補足

MarcoRossiItaly様のご説明について。 >お示しのデータで、答えが24時間以上になるケースはあり得るのですか? あまりないとは思いますが、「あり得ない」こともないと考えております。 >通常、データベースを作る際は、時刻だけでなく日付も記録することが多い気がします。 日付については別のセルに入力するつもりで、 特に関数式の引数にするつもりはありませんでした。 >そうであれば日付を式中に導入することで、計算ミスが出ないようにもできそうですが? とすればどのような式が考えられるでしょうか? もしご存知であればご教示願います。 たびたびの質問で誠に恐れ入りますが よろしくお願い申し上げます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

終了時刻が開始時刻より小さければ、単純に24時間(1を)足すだけです。 =(m5-j5+IF(j5>m5,1))

dradra33
質問者

お礼

Hypnomatic様 ご回答ありがとうございます。 お礼が遅くなり恐れ入ります。 上記のIF文参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 画像のように##が並ぶ場合は値がマイナス!というコトですので、 N5セル(セルの表示形式は h:mm )に =IF(J5>M5,M5+1-J5,M5-J5) としてみてはどうでしょうか?m(_ _)m

dradra33
質問者

お礼

tom04様 ご回答ありがとうございます。 お礼が遅くなり恐れ入ります。 上記のIF文参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。
noname#176157
noname#176157
回答No.1

IF文で24を足すのではだめですか。

dradra33
質問者

お礼

jusimatsu様  ご回答ありがとうございます お礼が遅くなり恐れ入ります。 アドバイス参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルの関数で、開始時刻と終了時刻のセルに対して、その差が何時間何分

    エクセルの関数で、開始時刻と終了時刻のセルに対して、その差が何時間何分かを表示できるようなものはあるでしょうか?

  • Excel関数について。

     ROUNDDOWN関数を使って式を作ったのですが、1:25や5.36とかの  場合は1:00や5とゆうように表示されるのですが、0:15や0.33  の場合はセルが空白になってしまいます。0:15や0.33の時にでも  0:00や0と表示させる方法はありますか?ツール→オプションの  ゼロ値の表示でも出来るのですが、それだと数値のない所まで  ゼロ値が表示されてしまうので、出来れば算式で出来る方法が  あれば教えて下さい。宜しくお願いします。出来れば数値と時刻、  別々の式だと有難いです。

  • Excel2007「入力規則」とCOUNTA関数

    ●質問の主旨 「データの入力規則」を使って1つの列に相対参照の関数式を 入力するためにはどのようにすればよいでしょうか? ご存知の方ご教示よろしく願います。 ●質問の補足 添付の画像をご参照ください。 現在、N5セルに下記の関数式が入力されています。 =IF(J5>M5,M5+1-J5,M5-J5) この関数式をN6以下のセルにも =IF(J6>M6,M6+1-J6,M6-J6) という具合で「入力規則」として計算ができるようにしたいと 考えております。ただしデータベース形式の表を作成しているので N1からN4までのセルは空白のままにしておきます。 「データの入力規則」の「ユーザー定義」とCOUNTA関数を組み合わせれば できそうな感じですが、具体的にどのように組み合わせれば良いのか 思いつきません。

  • エクセルの時刻関係の関数について教えてください。

    エクセルの時刻関係の関数について教えてください。 深夜の1:00を25:00で表示する関数はありますか? 勤怠表をエクセルにて作成したのですが、上記の問題が解決できなくて 正確な残業時間がもとめられません。 現状は、時:分が三つのセルによって区切られており、それぞれ数字を 出社時刻・退社時刻の時・分を入力することで残業時間が自動計上され その月の合計時間がもとめられるように作りました。 上記のように数字を入力した際に、他のセルでTIME関数を使用して 時間を表示させることによって自動計上をしているので、いわゆる 大元な部分になってきます。 そこで、問題になったのが、深夜残業でも24:00以降がTIME関数だと表示されなくて 正確な残業時間がもとめられません。 一応、他の時間に関係する関数を調べたり、しましたが、よく分かりませんでした。 どんな些細なことでも結構ですので、ご回答をよろしくお願い致します。

  • エクセルの関数を教えてください。(時刻の計算)

    例えば、従業員が10人いて、日・週・月ごとに実働時間を集計できるような表を作っています。 A 9:00-17:00 8:00h B 1:00-21:00 8:00h C 3:00-23:00 8:00h : : こんな感じなのですが、実働時間の8時間というのは「退社時刻-出社時刻」で簡単にだせるのですが、ABCの実働時間の合計を普通にSUM関数で出すとシリアル値で計算してしまうので、うまくいきません。 日付・時刻関係の関数をみてみたのですが、どれもうまくいきませんでした。 最終的にはこれに半休が加わったり、食事休憩の時間をマイナスしたり、勤務時間も24時を越えたりするので、少し複雑になってくるのですが、時刻の計算ができないと前に進めません... エクセルはOffice XPを使っています。 よろしくお願いします。

  • IF関数の論理式に時刻を使いたいが・・・

     例えば宅配便の配達希望時間を羅列した表があって、「20:00以降は“夜間配達”」と戻したいとき、IF関数を使用すると思います。  解説書によると、IFの式の条件には時刻の表示形式は使えないので「”」で囲み、「1」をかける。これで時刻表示がシリアル値になるため設定が早くなる。 とあるのですが、これだけでは意味がわからず質問させていただきました。下記の2点ほどご教示いただければ助かります。 (1)どうしてIFのの条件に時刻の表示形式は使えないのか?他の関数には使えるような気がするのですが。 (2)「”」で囲むのはなんとなくわかるとして、なぜ「1」をかけるのか。 シリアル値の知識(時刻の場合24時間を1で管理する)は一応あります。  

  • Excel: 時刻の演算

    初歩的な質問ですみません。 セルの表示形式が「時刻」で、例えば"11:30"のように時刻がセルに入っているとします。これに例えば1時間10分をずつを足して、"11:30"を"12:40"に、"12:40"を"13:50"にするにはどのような関数を使ったらよいでしょうか?

  • Excel2000の時間計算を関数で

    Excel2000でセルに時間(HH:MM形式)が入っています。 表示のみ(HH:MM形式)で、実データは小数点の入った数値です。 このセルは1日から31日まであって、最後に合計を出したいのですが、 表示形式を時刻にすると24時間の壁があることに気づきました。 時間数の合計を出したいので、24時間を超えて計算したいのですが SUM等で足しただけではだなようです。合計時間の上限は72時間と 考えています。 関数の組み方が分かる方がいらっしゃいましたら、ご教示願います。

  • ファイルメーカーの関数(時刻関数)について

    ファイルメーカープロ11を使っていますが、 時刻の関数が分からず困っています。 やりたいことは、 2014/7/7 12:30~2014/7/8 7:15までの時間(つまり18.75H)を出したいのです。 時間の部分だけならhour関数で何とかできましたが、 分の部分は関数の作り方が分かりません。 ちなみに18H45Mではなく、18.75と出したいです。 どなたか教えて下さい。

  • ファイルメーカーの関数(時刻関数)について

    ファイルメーカープロ11を使っていますが、 時刻の関数が分からず困っています。 やりたいことは、 2014/7/7 12:30~2014/7/8 7:15までの時間(つまり18.75H)を出したいのです。 時間の部分だけならhour関数で何とかできましたが、 分の部分は関数の作り方が分かりません。 ちなみに18H45Mではなく、18.75と出したいです。 どなたか教えて下さい。

専門家に質問してみよう