• ベストアンサー

エクセル2000で時間の計算(マイナスも含む)

こんにちは、いつもお世話になっています。 あと一歩のところだと思うのですが、 マイナス時間の表示を教えてください。 エクセル2000を使っています。 入力しているデータは、3.45 0.3 -1.2 といったデータです。 これを、3時45分、0時30分、-1時間20分、2時55分 と表示させ、 最終行に合計値を求める方法を探しています。 現在の状態は、 (1)セルA1(3.45)をセルB1(3時45分)に表示  B1 =TIME(INT(A1),100*(B1-INT(A1)),0) と入力。 (2)表示形式を時刻表示に設定しする。 (3)負の時刻や日付を表示させる方法として、 「ツール」-「オプション」-「計算方法」タブで「1904年から計算する」にチェックをする。 ↑のところまで実施したのですが、 マイナス値(-1.2)の結果がエラー表示(#NUM!)になってしまいます。 他の方のエラーは####表示のようですが、 私の場合、元データと関数の組み合わせが間違っているのでしょうか? よろしくお願いいたします。

  • smi
  • お礼率47% (54/114)

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

B1 =TIME(INT(A1),100*(A1-INT(A1)),0) =TIME(-2,80,0) となりTIME関数ではこの-2を処理できません。 ABS関数で絶対値で計算後にSIGN関数で符号をセットしてください。 B1 =SIGN(A1)*TIME(TRUNC(ABS(A1)),100*(ABS(A1)-TRUNC(ABS(A1))),0) または、TEXT関数とSUBSTITUTE関数で置換して B1 =SIGN(A1)*TIMEVALUE(SUBSTITUTE(TEXT(ABS(A1),"00.00"),".",":"))

smi
質問者

補足

ありがとうございます。 イメージどおりの時間で表示することができました。 3.45 0.3 -1.2  を3時45分、0時30分、-1時間20分 と表示させ、 SUMを使って、合計を2時間55分と表示させることができました。 追加で教えて頂きたいのですが、 数値(3.45 0.3 -1.2)の合計を2.55 と表示させることは出来ますか? 宜しくお願いいたします。

その他の回答 (3)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

#1です。 >数値(3.45 0.3 -1.2)の合計を2.55 と表示させることは出来ますか? 連続した範囲なら =SUBSTITUTE(TEXT(SUMPRODUCT(TRUNC(A1:A3)*60+MOD(A1:A3,SIGN(A1:A3))*100)/1440,"[hh]:mm"),":",".")*1

smi
質問者

お礼

1度目の質問に続き、追加にも回答いただいてありがとうございます。 ぴったりイメージどおりの表示をさせることができました。 色々と関数の組み合わせが必要なのですね。 解体して、一つずつ勉強したいと思います。 ありがとうございました。

回答No.3

time関数に負の値を渡すことは出来ません。 B1: =TRUNC(A1)*"1:00"+100*MOD(A1,SIGN(A1))*"0:01" として表示形式を時刻にすれば大丈夫です。

smi
質問者

補足

ご回答ありがとうございます。 イメージどおりの時間で表示することができました。 数式の中身はこれから勉強したいと思います。 ちなみに、数値データ(3.45 0.3 -1.2)の合計を 2.55と表示させることは出来ますか? 宜しくお願いいたします。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

TIME関数の引数は 0~32767 の範囲です。 -1が渡された時点でエラーになっていると言うことですね。 他の方法を考えましょう。 分単位の数値に直すことで計算は可能ですね。 時間の表示は TEXT関数で文字列として表示させればよさそうです。 例:=TEXT(-2000,"0時"&"00分") → -20時00分

smi
質問者

補足

ご回答ありがとうございます。 さっそく試してみたのですが、 今回入力しているデータが独特で、 教えて頂いた方法ではイメージのデータを表示させることができませんでした。 ちなみに追加で教えて頂きたいのですが、 数値(3.45 0.3 -1.2)の合計を2.55 と表示させることは出来ますか? ※入力しているデータを60進数で合計する方法 宜しくお願いいたします。

関連するQ&A

  • EXCELの時間計算

    セルA1に、「9:43:20」と時刻が入力されています。 セルB1に、「3.2」と時間(分)が入力されています。 セルC3には、A1の時刻から,B1の時間が経過した後の時刻を 表示させたいです。 ※B1の「3.2」を3.2分(3分12秒)として計算したいです。 C3の計算式を教えてください。 ※計算した結果の時刻は,9:46:32です

  • Excelの時刻の計算(マイナス表示)

    時刻のセルでひき算をし、マイナス表示も出したいのですが。。 例えば A1に [2002/5/9 7:00] B1に [2002/5/9 8:00] とあって C1に [B1-A1] と計算式を入力すると [1900/1/0 1:00]となり、表示形式を[h:mm]にすると[1:00]とできますよね。 このときに B1に [2002/5/9/6:00] とあるとC1には[##########]となってしまうのですが、 6:00-7:00なので [-1:00]と表示させることはできないでしょうか。 できればAとBの値そのものは変えたくないのですが。。。お願いします

  • エクセルで時間計算

    エクセルで時間計算をしているのですが A1セルに開始時刻  B1セルに終了時刻  C1セルは作業時間   9:00         4:00           7:00 このような表を作っています 「C1」には(B1+12:00)マイナス「A1」と数式があるのですが 「B1」に入る時刻が午後でなく午前11:00だと 「C1」の数式のままでは (11:00+12:00)- 9:00 で 14:00 となってしまいます 「B1」には24時間形式で午後4:00を16:00と入力すればよいのですが 24時間形式を使わず9:00マイナス4:00を正しく計算するには どのような数式にすればよいのでしょうか IF文を使うのかなとも思うのですが 見当がつきません。宜しくお願いいたします。

  • エクセルでの時間計算について

    時間計算について質問です。 図のような仕事上にかけた時間の計算をしたいのですが。終了時刻と休憩時刻で空白のセルがあるとマイナスになってしまします。 計算としてはC行の終了時刻からB列の開始時間を引き、休憩があればさらにマイナスで計算してみています。 終了時刻と休憩時刻で空白のセルがあるときには計算をせずすべてのセルが埋まったら計算結果を表示することは可能でしょうか? 現在ですと合計時間のところでマイナスになってしまい、すべて入力 がされていないと正確な数値になりません。 作業時間はその後の計算の都合上時間表示ではなく数字として表示させています。

  • Excelでの時間の計算について

    時間を1:20(1時間20分)ではなく、 80分と表示したい場合の方法を教えてください。 もしくは、その回答が載っているサイトのご紹介をお願いします。 たとえばですが、 セルA1に、勤務開始時間が、9:10と入力してあり、 セルB1に、退社時間が、10:40と入力してあるというような、 30分ごとではなく、半端な時の計算方法を知りたいです。 (暗算で、30分=0.5とできないようなときです。) この状態で、セルC1に、=B1-A1とすると、1:20と表示されますが、 これを、80と表示させたいです。 なお、セルA1と、セルB1の表示形式は、ユーザー定義で [h]:mmと指定してあります。 お分かりになる方、よろしくお願いいたします。

  • EXSEL2007 時刻計算

    A1セルに 11:00と入力 B1セルに他セルからの計算結果時刻が 2:30 と出た場合、C1セルにA1セルとB1セルの合計を求めたら13:30と表示されます。 B1セルの計算結果がマイナスの場合、当然、A1セル時刻から引き算結果がC1セルに表示されます。B1がマイナスのときは計算に反映させたくないのですが、何か方法がありませんか。

  • Excelでの引き算や足し算でマイナス値やゼロ値を計算させない方法はありますか?

    電気料金が気になり 毎日の数値を記録しようと思い 数値を計算させようと思ったのですがうまくいきません。 どうすれば良いのでしょうか 具体的には下記のようなことになってしまいます。 A1 10000  B1 (A2-A1)→計算数値(セル表示数値)は10 A2 10010   B2 ↓以下同じ計算 A3 10020   B3 A4 10030   B4 A5 10040   B5 A6 (未入力)  B6   -10040 Aの列に数値を毎日入力となるのですが こうすると未入力日(当日もしくは翌日)は 空白となってしまうので上記例で言いますと A6-A5とするとマイナスになってしまいます。 これをB列セルのユーザー定義で「#;!0;0」とし マイナス値をゼロにする方法にするときちんとゼロには なるのですが 今度は合計値の計算でゼロになってしまいます。 B列の最下行?となる部分、B32セルにB1からB31までを足し算の 関数を設定するとB32セルの表示数値はゼロ。 ユーザー定義でゼロを表示しない方法を使うと 今度は合計値が マイナス表示されてしまいます。 ご存じの方にとっては こんなことで悩むこと自体がおかしい くらい簡単なことなのかも知れませんが いろいろ試した結果 未だにうまくいきません どうかよろしくお願い致します。

  • エクセルで再計算のエラーが出る

    エクセルで、INDEX関数と循環参照を使って表を作っています。 <INDEX> Sheet1には、A列に名前(2000ケースくらい)、B列以降に毎日のある数字(100日分)が入力されています。 ただし、A列に名前はあるが、B列以降に数字が入力されていない場合も混じってあります。 Sheet2にはINDEX関数を使って、あるセルC1に「1」と入力すればSheet1のA1の毎日の数字がSheet2のA1からA100に参照されるように作ってあります。 C1に「2」と入力すればSheet1のA2の毎日の数字が参照されます。 <循環参照> 上記のSheet2にでは、明らかに少なすぎるデータを欠損データとするように循環参照をしています。 具体的には、とある1日のデータが、100日分の平均値の10分の1未満の場合には欠損とするようにしてあります。 Sheet2のセルA1からA100に100日分の数値がINDEXで参照されており、 セルB1に「=if(A1="","",if(A1=0,"",if(A1<A102,"",A1)))」 セルB2~B100までB1と同様の計算式 セルB102に「=B102/10」 セルB101に「=average(B1:B100)」 と、循環参照させてあります。 エクセルのオプションの「数式」の「ブックの計算」は自動、「反復計算を行う」にチェックし反復回数は100(100日分あるため)、変化の最大値は1(小数点以下の数値は必要ないので)にしてあります。 <計算エラー> 上記のINDEXと循環参照を利用して通常は問題はありませんが、 Sheet1に数値が入力されていないケースが出た後にエラーが出て来ます。 Sheet1のA列で、例えばA4のケースに100日分のデータが入力されていなかったとします。 Sheet2のC1に1~3の数値を入力した時は問題ありませんが、4を入力したらB列は全て「#NUM」と表示されます。 これは、循環参照をするにもできないからなので、理解できます。 その後は、C1に何を入力しても(さっきは問題なかった1~3を入力しても)、「#NUM!」が表示されたままになり、循環参照の再計算がうまくいきません。 主動でF9を押して再計算も「#NUM!」のままになります。 どのようにすれば、これを回避できるでしょうか? 最終的には、グラフ等を作成して、マクロを組んで一括で数百ケース程を印刷しようと思っています。 アドバイスよろしくお願いいたします。 ※ Office Home and Business 2010 Windows7 professional 32bit を使用しています。

  • EXCELでの時間計算について教えてください。

    EXCELでの時間計算について教えてください。 現在時刻が PM15:10だとして、 セルA1に =Now() セルB1に ="15:00:00" セルC1に =A1-B1 と入力すると、 セルC1には期待通りの"0:10:27"(A1とB1の時間差が10分)という結果が返ってきます。 それでセルD1に、差が10分以上であれば"○"を付けたいのですが、どのように式を書けばよいのでしょうか? よろしくお願いします。

  • Excelにてマイナス表示されるセルを

    Excelシートにて、 例えば、『セルB1』に100という数字が入力されていて、 『セルB2』には何も入力されていないセルがあるとします。 『セルA1』にて数式『=B2-B1』としたとき、『セルA1』には『-100』と表示されます。 この場合、『セルA1』に、マイナスの場合は何も表示せず、0以上の数字が計算された場合だけ表示する方法はあるのでしょうか?