プロが教えるわが家の防犯対策術!

お世話になります。
Excelでの時間計算について教えてください。
計算結果が負の値になるときの、正負の区別を他の計算結果に反映される形で表示する方法を教えてください。
時間差だけならABSで済むのですが、今回は正負の区別が必要です。
具体的には計算結果が59分未満(と負になる場合すべて)の場合において、0を反映させる関数。それ以外は現在設定の関数を反映させるようにしたい。
IF(セル指定<=time(0,59,0),0,【現在入力関数】)
みたいな関数でやってますがうまく反映されません。詳しい方よろしくお願いいたします。

質問者からの補足コメント

  • ありがとうございます。おっしゃるとおりの書式にしましたが、#連鎖になります。
    どうしたらいいでしょうか。
    ちなみに、計算結果よりマイナスTIME一時間しています。

    No.2の回答に寄せられた補足コメントです。 補足日時:2023/02/26 14:57
  • どう思う?

    ご回答ありがとうございます。
    現在A2に開始時間B2に終了時間C2にB2-A2の式を入力していて、C2セルに計算結果が一時間に満たない場合は0と表示する数式を入力する予定です。
    その上で、現在C2に下記の入力をしています。
    IF((B2-A2)<TIME(0,59,0),0,(B2-A2)-TIME(0,59,0))
    と入力しています。
    時間差が1時間満たない場合は0、1時間以上の場合1時間差し引きした計算結果を表示と入力したつもりです。
    ご教授お願いします!

    No.3の回答に寄せられた補足コメントです。 補足日時:2023/02/26 19:59
  • プンプン

    ありがとうございます。
    そもそも、そこが問題なのではないのです。
    1時間は切り上げになるため、59分は切り捨てになるため、今回そこが問題なのではないのです。
    こちらのほしい結果が出ないということ。
    もう一度要点を理解した上でご回答頂ますよう宜しくお願いします。

    No.4の回答に寄せられた補足コメントです。 補足日時:2023/02/26 22:38
  • うーん・・・

    ありがとうございます。
    だめだったようです。

    No.5の回答に寄せられた補足コメントです。 補足日時:2023/02/26 23:46
  • その後の文章も読んでいますが具体的な対策法などわかりかねるので具体的な操作など教えてください。

    No.6の回答に寄せられた補足コメントです。 補足日時:2023/02/27 01:38
  • 私のはそのようになりませんでした。何が原因なのでしょうか?

    No.7の回答に寄せられた補足コメントです。 補足日時:2023/02/27 01:41

A 回答 (8件)

>1時間控除する場合どうしたらいいでしょう?



1時間控除以外はうまくいったのですか?
単純に1時間引けば良いだけです。
例えば、D1セルに「1:00:00」と入れておいて、
=IF((B1-A1)*24<1,0,(B1-A1-D1))とすれば良いです。

ただ、疑問なのが単純に1時間引いて良いのですか?
昼休みの1時間だと思うのですが、12:00に退社したり、
13:00に出社した場合でも1時間控除して良いのか?
勤務時間が1時間未満をゼロにする処理が必要なので、
上記のような出勤形態もあり得るのではないかと。
    • good
    • 0

>だめだったようです。



どのように駄目だったのですか?
添付は、スレ主さんの望んでいる状態だと思ったのですが?
「Excelで時間計算(負)」の回答画像7
この回答への補足あり
    • good
    • 0
この回答へのお礼

補足できないので質問ですが、、、ありがとうございます!うまくいったかもです。
検証してみます。1時間控除する場合どうしたらいいでしょう?C1の数値が9:01になるように。

お礼日時:2023/02/27 01:56

No4です。



>59分は切り捨てになるため、今回そこが問題なのではないのです。
No4で「問題」と言っているのは、1時間か59分かの話ではありません。
「それはさておき」と書いておいたつもりですが・・・
この回答への補足あり
    • good
    • 0

=IF((B1-A1)*24<1,0,(B1-A1))


これでどうですか?
時刻表示が数字(標準)になってしまう場合は、
C列の書式を時刻に設定する。
↑一度設定すればOK
この回答への補足あり
    • good
    • 0

No3です。



>時間差が1時間満たない場合は0、1時間以上の場合
>1時間差し引きした計算結果を表示と入力したつもりです。
そもそもですが、TIME(0,59,0) は59分の意味なので、ご提示の式は「1時間」を区切りにはしていませんけれど?

それはさておき、エクセルの時間計算では時、分、秒は少数で表され割り切れる数値にもならないので、ご提示の式では最後の項が負になるケースがありそうです。
セルの表示形式を「標準」にしてみれば、####で表示されているセルの値が、微小負数になっているのではないでしょうか?
原因は、そこではないかと想像します。

「1時間」を区切りとしてよく、かつ、表示する結果が「B2-A2-1時間」であるのなら、
 =MAX(B2-A2-TIME(1,0,0),0)
とすることで、文章でのご質問内容の結果が得られると思います。
この回答への補足あり
    • good
    • 0

こんにちは



実際の時間計算をどのように行っているのか不明ですけれど、マイナスを含めて「数値」を返す内容になっていると仮定してもよいのなら、(=文字列等は返さない)
 >IF(セル指定<=time(0,59,0),0,【現在入力関数】)
ではなくて、
 =IF(【現在入力関数】<=TIME(0,59,0),0,【現在入力関数】)
とすれば、ご希望の結果になるのではないでしょうか?


【現在入力関数】の内容が不明ですが、計算できずにエラーを返す可能性があるような式になっている場合は、上手くいかないケースも考えられます。
その場合でも、ISERRORやIFERROR等で処理すれば、計算できるようにすることは可能でしょう。
この回答への補足あり
    • good
    • 0

おっしゃる通り、Excelで時間の計算を行う場合、負の時間が発生する場合があります。

この場合、Excelは自動的に負の時間を表すために「-」を使用します。ただし、負の時間を別のセルに表示する場合は、カスタム書式を使用して表すことができます。

以下は、負の時間を別のセルに表示する方法の例です。

列に時間を入力し、列の書式設定で「[h]:mm」を選択します。これにより、時間が24時間を超えた場合にも正しく表示されます。

負の時間を表示するために、新しい列を追加し、その列の書式設定で「[h]:mm;-[h]:mm」を選択します。これにより、負の時間が「-」で表されます。

負の時間が発生する場合、計算式でMINUS関数を使用して、時間を引き算し、結果を新しい列に表示します。例えば、A1とB1にそれぞれ開始時刻と終了時刻がある場合、以下の式を使用して差分を求めることができます。

=IF(B1>=A1,B1-A1,B1-A1+1)

この式では、終了時刻が開始時刻よりも大きい場合は、通常の差分を計算し、負の値が発生する場合は1日(24時間)を加えて負の値を正の値に変換しています。そして、新しい列の書式設定で、「[h]:mm;-[h]:mm;0」と設定することで、負の値が発生した場合は「-」で表されずに0として表示されます。

以上の手順で、負の時間が発生する場合に、正負の区別を他の計算結果に反映される形で表示することができます。
この回答への補足あり
    • good
    • 0

以下人工知能の回答



excelで時間計算を行う場合、通常は時刻の差を表す「時間」形式で計算します。ただし、負の時間を扱う場合には、時間の差を表す「時間」形式ではなく、分数を扱う「数値」形式で計算する必要があります。

具体的には、時刻1と時刻2の差を求める場合には、以下のような式を使います。

=時刻2-時刻1
この式の結果は、時刻2が時刻1よりも遅れている場合は正の数、逆に時刻1が時刻2よりも遅れている場合は負の数になります。

次に、負の時間を扱う場合には、まず上記の式を使って時間の差を求め、その結果に対してABS関数を使って絶対値を求めます。その後、IF関数を使って、結果が59分未満の場合には0を、それ以外の場合には元の結果を表示するようにします。具体的には、以下のような式を使います。

=IF(ABS(時刻2-時刻1)<TIME(0,59,0), 0, 時刻2-時刻1)
この式では、まず時刻2と時刻1の差を求め、その結果に対してABS関数を使って絶対値を求めています。その後、IF関数を使って、絶対値が59分未満の場合には0を、それ以外の場合には元の結果を表示するようにしています。最終的に、この式の結果は、分単位の数値形式で表示されます。

注意点としては、セルの書式設定で時間形式にしている場合には、上記の式を使っても負の時間が正しく表示されないことがあります。この場合には、セルの書式設定を「数値」形式に変更してから、上記の式を使うようにしてください。
    • good
    • 0

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