【Q&A】007
マイナス表示の時間を計算に使うと#VALUEエラーになる
約~分
(約文字)
2019-06-03
「みんなのエクセル」に頂いたご質問と回答
この記事では「みんなのエクセル」に頂いたご質問と回答を公開しています。Q&A形式で「質問者様」と「管理者ヒサ」とのやり取りを、ほぼそのままの状態で見れるようにしています。 他の方が困っている事と、それに対する解決方法を読んで学ぶことで、エクセルのスキルアップにつながる場合がとても多いので、公開させていただいています。
Question
下記についてご教授いただければと存じます。
[C31セル]出勤
[D31セル]8:20
[E31セル]18:00
[F31セル]?
[G31セル]=CEILING($D31,"00:30")
[H31セル]=FLOOR($E31,"00:15")
[I31セル]=IF($F31="?","00:45",IF($F31="??","01:00","00:00"))
[J31セル]=IF($C31="出勤","7:45",0)
[K31セル]=TEXT(ABS($H31-$G31-$I31),IF($G31>$H31,"-hh:mm","hh:mm"))
[L31セル]=TEXT(ABS($K31-$J31),IF("07:45">K31,"-hh:mm","hh:mm"))
とすると、Lがヴァリューになってしまいます。 ここに、計算された結果のマイナスの時間を表示したいのですが、うまくいきません。 日付も同じシートに入れているので、1904年設定は使いたくありません。
何卒ご教示願います。
Answer
現状を把握する
まず、セルK31に表示される値は、TEXT関数の答えですので、”文字列”です。
次に、セルL31でABS関数の引数にK31の値(文字列)を指定しています。
エラーが発生した原因
ABS関数の引数には”数値”を指定する決まりがあるので、#VALUEエラーが表示されています。
解決の方法
エクセルのオプション設定で”1904年から計算する”が一般的ですがNGとのことですので、他の方法をご提案します。
=TEXT(ABS(($H31-$G31-$I31)-$J31),IF("07:45">($H31-$G31-$I31),"-hh:mm","hh:mm"))
解決方法の解説
セルK31はH31-G31-I31の結果ですので、セルL31で指定している式中のK31を(H31-G31-I31)に置き換えました。
#VALUEエラーは回避され、一応答えらしき値が出ましたので、ご回答とさせていただきたいと思います。
(答えは”01:00”となりましたが、これが意図された答えかは、こちらでは判りかねます)
大変お忙しいところ恐れ入ります。ご確認及びご回答をお待ちしております。
Result
まだご連絡を頂戴しておりません。
この記事は以上です。最後までご覧頂き、ありがとうございました。