• ベストアンサー

エクセルの計算式について教えて下さい

次の計算式にて計算させています。  求める時間:J24=H24+TIME(0,0,$E$15)+V24+R24   H24 ⇒ 数値(時間)が入力されているセル     H24 6:30(開始時間)     H25 7:24     H26 8:19     ↓      H40 0:05     H41 1:10(終了時間)    1:00+α   *α(単位は時間で、0.5時間等と変化させます    V24 ⇒ 数値(時間)が入力されているセル  0:15    R24 ⇒ 数値(時間)が入力されているセル  0:55    $E$15 ⇒ 固定する数値が入力されているセル 単位:秒 そこでJ24=H24+TIME(0,0,$E$15)+V24+R24の値が1:00+$C$19を超えた場合は1:00+$C$19と表示させたく次の式を作成しました。  求める時間: J24=IF(AND(H24+TIME(0,0,$E$15)+V24+R24>=(1+$E$15)/24,(1+$E$15)/24<H24),(1+$E$15)/24,IF(AND(H24+TIME(0,0,$E$15)+V24+R24>(1+$E$15)/24,H24+TIME(0,0,$E$15)+V24+R24<(6+30/60)/24),"Error",H24+TIME(0,0,$E$15)+V24+R24)) しかしH41(1:10)に対してJ41=1:00+$C$19と計算させたかったのですが、J41=H41+TIME(0,0,$E$15)+V41+R41としか計算されなかったため、色々と試行錯誤しましたが直りませんでした。 そこで今回作成した式の間違いと正しい式を教えて下さい。 よろしくお願い致します。

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

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

すみません、I24の式を訂正いたします。 I24=MIN(H24+TIME(0,0,$E$15)+V24+R24,1+"1:00"+$C$19/24) 修正後は(15+15/60)/24+$C$19と判断いたしました。C19=0.25であれば、15:30~16:15間をカウントしないことになります。 H25=IF(AND(I24<(16+15/60)/24,I24>(15+$C$19+15/60)/24),(16+15/60)/24,I24+TIME(0,1,0)) 等号の有無はおまかせしますが、時間の比較では誤差が生じる場合があります。 Errorについては考慮していません。どういう誤入力に対応させるのかが不明確でしたので。

sky_blue77
質問者

お礼

何度もどうもありがとうございました。 この計算式で対応出来ました。 MIN関数を用いる部分がポイントで、時間も24時間ではなく25時間と考えることもポイントなのですね。 *私の作成した計算式は長いだけでエラーしているので、まだまだ勉強しないといけないです。 どうもありがとうございました。

その他の回答 (4)

回答No.4

NO.1、3です。状況がわかってきました。 お礼の中で、I列→J列、2:30→2:03、1:10+0.30=1:18→1:00+0.30=1:18と読み替えました。また、お礼中の式はH26に入力されるものと解釈いたしました。 H41に表示されている1:10は、実際には1日と1時間10分、つまり25:10です。したがって、比較対象は1+"1:00"+$C$19のはずです。 基本的な部分だけなら、以下の式でOKだと思います。 J24=MIN(H24+TIME(0,0,$E$15)+V24+R24,1+"1:00"+$C$19) H25=J24+TIME(0,1,0) 以下は補足要求です。 ・負の値を入力することはあるのか ・No.3のお礼で"IF(J25=(16+15/60)/24+$C$19,(16+15/60)/24,…)"の目的(C19に負の値を入力しなければ意味がない) ・H列、J列において、どういう条件で"Error"を表示させたいのか

sky_blue77
質問者

お礼

ご回答ありがとうございます。 >"IF(I25=(16+15/60)/24+$C$19,(16+15/60)/24,…)"の目的(C19に負の値を入力しなければ意味がない) まず訂正です。(すみません) J列ではなくI列の間違いで、J列は数式に関係ありません。 *H24は6:30を手入力しますが、H25~H41までは下記の式です。 =IF(I24>(16+15/60)/24,I24+TIME(0,1,0),IF(I24>(15+15/60)/24+$C$19,(16+15/60)/24,IF(I24>=(6+30/60)/24,I24+TIME(0,1,0),IF(I24>1/24+$C$19,I24+TIME(0,1,0),Error)))) また2番目のIF式でご指摘通りミスがあり、(16+15/60)/24+$C$19から(16+15/60)/24+$C$19へ修正しました。 ・基本は、I列の1個上の行に1分を加算したものをH列としています。 ・ただ15:15~16:15はC19(0:00~1:00)に対して変化し、C19=0.5であれば、15:45~16:15間はカウントせずに16:15からとします。 >負の値を入力することはあるのか 負の値はなく、全て正の値です。 >H列、I列において、どういう条件で"Error"を表示させたいのか 特に大した意味は持たせてなく、誤入力と判断出来るようにするためだけです。 また私の計算式に対する精度の低さをフォロー出来るようにさせたかっただけで、特に深い意味はありません。 よろしくお願いします。

回答No.3

各セルに入力されている値、欲しい結果、現在得られている値を補足していただけますか? また、αとは何で、どこのセルにあるのですか?「1+αとしたい」とはどういう意味でしょうか? "1:00"の説明はNo.2さんのとおりです。

sky_blue77
質問者

お礼

何度もありがとうございます。 値は次のようになっています。 *24~41は、エクセルの行 *H、I、R、Vは、エクセルの列 *H列はH24のみ6:30と入力し、それ以降は次式で自動計算   =IF(J25>(16+15/60)/24,J25+TIME(0,1,0),IF(J25=(16+15/60)/24+$C$19,(16+15/60)/24,IF(J25>=(6+30/60)/24,J25+TIME(0,1,0),IF(J25>1/24+$C$19,J25+TIME(0,1,0),Error))))      H I R V 24 6:30 7:23 0:00 0:00 25 7:24 8:18 0:00 0:00 26 8:19 9:22 0:10 0:00 27 9:23 10:17 0:00 0:00 28 10:18 11:57 0:45 0:00 29 11:58 12:51 0:00 0:00 30 12:52 13:56 0:10 0:00 31 13:57 15:00 0:10 0:00 32 15:01 16:37 0:00 0:42 33 16:38 17:32 0:00 0:00 34 17:33 18:36 0:10 0:00 35 18:37 19:31 0:00 0:00 36 19:32 21:10 0:45 0:00 37 21:11 22:05 0:00 0:00 38 22:06 23:10 0:10 0:00 39 23:11 0:04 0:00 0:00 40 0:05 1:09 0:10 0:00 41 1:10 2:03 0:00 0:00 E15 3216 単位は秒ですが数字のみ C19 0.30 単位は時間ですが数字のみ・・・質問ではこれをαと表現していました。 I41を2:30ではなく、1:10+0.30=1:18と計算される計算式を求めたいです。 よろしくお願いします。

  • wisemac21
  • ベストアンサー率39% (171/429)
回答No.2

数式の間違い J41=1:00+$C$19 → ="1:00"+$C$19 時間の表示形式で演算する時は、ダブルコーテーションでくくる その他は全体がよく分からないので判断できません。

sky_blue77
質問者

お礼

ご回答ありがとうございます。 >時間の表示形式で演算する時は、ダブルコーテーションでくくる 勉強になりました。 式を複雑にしてしまっていたのですね。 今後は、表示されている形式を数式に反映していくために活用させて頂きます。 どうもありがとうございました。

回答No.1

(1+$E$15)/24というのが突然出てきていますが、ここを"1:00"+$C$19にすればよいのではないでしょうか?あるいは、TIME(1,0,$E$15)ということでしょうか?

sky_blue77
質問者

お礼

ご回答ありがとうございます。 ご指摘して頂いた通り(1+$E$15)/24は間違いで(1+$C$19)/24です。  $C$19 固定する数値が入力されているセル 単位:時間 訂正した求める時間: J24=IF(AND(H24+TIME(0,0,$E$15)+V24+R24>=(1+$C$19)/24,(1+$C$19)/24>H24),(1+$C$19)/24,IF(AND(H24+TIME(0,0,$E$15)+V24+R24>(1+$C$19)/24,H24+TIME(0,0,$E$15)+V24+R24<(6+30/60)/24),"Error",H24+TIME(0,0,$E$15)+V24+R24)) です。 "1:00"+$C$19やTIME(1,0,$E$15)⇒TIME(1+$E$15,0,0)でも試してみましたが、  1:00 ⇒ 2:53  ・・・ここは1+αとしたい でした。 時間はシリアル値で1以下の数字となり、表現方法は  (1) 1:53 (2) (1+53/60)/24 (3) TIME(1,53,0) となると理解していますが、正しいのでしょうか。 よろしくお願いします。 <追 記> "1:00"と" "で囲むことにより、何をしているのか教えて下さい。

関連するQ&A

  • エクセルの計算式

    エクセルの計算式でどこが間違っているか教えて下さい。 E7=P1010200(文字列) G7=180000(数値) H7に次の式を入力しました。 =IF(E7="P*",G7*0.1,0) 答えが18000になると思って入力をしたんですが0になってしまいます。なぜでしょうか。

  • エクセル計算式

       A    B    C    D    E    F   G   H   I   J    K    L  1 名前(1) 80.00  50.0  51.0 ×54.0 80.0  85.0  90.0  51.0   90.0  141.0  2 2 名前(2) 79.00  50.0 ×52.0 ×53.0  88.0 89.0 91.0 50.0  91.0 141.0 1 このとき、      C~EのMAXをIに(×の場合は00.0で計算)      F~HのMAXをJに(×の場合は00.0で計算)      (※C~Hの前には×を入れるためのセルあり)      I,J,K共にBの数値が小さいほうが上位に来る      (※I,Jの後ろには、順位を入れるセルあり)      Kは、I+J      Lは、Kの計に対する順位       列がずれていて見にくいです。すみません。 どなたか回答お願いします。

  • エクセル2002 関数

    以前日付と時間の計算で、"2012/11/28 12:55”の形で入力したセル同士の計算で、 ”=TEXT(NETWORKDAYS(J2351,J2352)-IF(WEEKDAY(J2352,2)<6,("24:00"-TIME(HOUR(J2352),MINUTE(J2352),0)),0)-IF(WEEKDAY(J2351,2)<6,TIME(HOUR(J2351),MINUTE(J2351),0),0),"d:h:mm")”の式を教えていただいたのですが、 パソコンがクラッシュしてしまい、新しいパソコンでは、”#NAME?"と、エラーメッセージが出てきてしまいます。 アドインを入れれば良いそうですが良く解りません。お手数ですが噛み砕いてお教えください。 よろしくお願いします。

  • Excelの計算式を一緒に考えてください

    Excelの計算式を一緒に考えてください A1:G1まで、7.6、5.4などの少数点を含む数字が入力されている表で、H1に3.5と4.1の場合は、何もせず れ以外の数字の時に7.6を引いた和をだしたいのです。1つのセルについては右のような式になりますが、 =IF(A1=3.5,"",IF(A1=4.1,"",A1-7.6) このA1:G1までの和をH1一つのセルで行いたいのですがどのような式にしたら良いのでしょうか。 また、式が配列になった場合、カッコが{}となるとおもうのですが、VBAでR1C1形式の式にした時、普通に"={" & とつなぐような形で式が有効になるのでしょうか。宜しくお願い致します。

  • Excelの計算式がおかしいっ!!

    Excelで表を作り計算式を作ったんですが、思うように答えが表示されません。PCには詳しくないので分かりやすく説明してくださる方にお願いします。  次のような式をセルに入力しました。 『=SUM(C19:E19)-F19』 そしてCからFまで数値を入力すると計算式が次のように変わってしまうんです。『=SUM(C19:F19)-F19』  当然のことながら求めたい答えが出てこなくて困っています。SUMを使わず『+と-』のみを使うと大丈夫のようですが、ExcelではSUMから引くというのは無理なのでしょうか。

  • Excelで計算式が自動的に変わってしまいます・・・

    Excelで例えば C6のセルに=SUM(C1:C4)という計算式が入っていて C7のセルに=SUM(C1:C3,C5)という計算式が入っています。 そこにC1から順に数値を入力していくとC5に数値を入力した時に 勝手にC6に入っている式が=SUM(C1:C5)に変わってしまいます。 なぜでしょうか? どなたか教えてください。 宜しくお願いします。

  • Excel での計算

    EXcelを初めて使用する初心者です。 Excelを使用し、次のような式を計算する場合、「数式バー」に入力すれば計算出来ることは、承知しているのですが、「セル」に入力し保存、必要な時に数式の一部だけを変更し計算する事は出来ますか?            ( A-( B÷C ×D + E + F +G ))  上式で、A,B,C,E,F,Gは定数(変更しない数値)で、Dを毎回変更するということが出来ますか?(そもそも「セル」に入力出来ますか?)

  • エクセルの対数の計算

    初歩的な質問です。セルA1,B1に数値を入力して C1にB1/A1を計算させて表示、次にD2に20*log(C1で出た数値そのものを入力/C1)にすると、ほぼゼロに近い数値(1.76011E-10)がでます。数学の計算ですと20*log1=0になったはずですが、なぜエクセルで計算でするとこのような数値になるのでしょうか?

  • EXCELにての計算式が・・

    エクセルの計算式で困ってます。 =IF(K25<>"",(5-K25+$C26)/5*100,"") という計算式があって C26には 「-0.005」が入ります。 「5-K25」という式の答えから マイナス0.05を引きたいのですが 苦し紛れに上のような式を作りました。 これは おかしいですよね?? それと 答えが「0」になると -2E-15 といった妙な数字がセルに記入されます。 どうしてなんでしょうか??? この二つでハマってしまい 作表が止まったままではや3日・・・ どなたかお助けくださいませんでしょうか? お願いします。

  • Excelの表示について

    Excelでタイムカードを作成しました。 出勤・退社時間を入力すると通常勤務時間や残業時間等が計算されるように計算式を組んでいます。 出勤・退社時間を入力したときは問題なく計算され時間が表示されるのですが、 休日の際、出勤・退社時間を入力しなかった場合、通常勤務時間や残業時間のセルが「#######」と表示されてしまいます。 「#######」と表示されるのを空欄にしたいのですが、下記式のどこに何を追加すればいいのかわかりません。 どなたかご教授願います。 通常勤務時間のセル(H6)式:     =IF(F6<$G$2,F6-E6-TIME(0,G6,0),$G$2-E6-TIME(0,G6,0)) F6:退社時間 G2:定時退社時間 E6:出勤時間 G6:休憩時間(70分)

専門家に質問してみよう