[[20050523133546]] 『時間入力、時間計算』(ごりら) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『時間入力、時間計算』(ごりら)

セルAに開始時間、セルBに終了時間、セルCに勤務時間(セルB−セルA)を入力したいのですが。

まず、セルAとBに入力する時間ですが、表示は「15:43」などとなるようにしたいのですが、「:」をうつのが手間なので「.」で代用したいのです。

また、セルCは計算式を入力、結果を少数で表示するように設定したいのです。

初心者で大変申し訳ないのですが、過去ログを見てもいまいち分かりませんでした。

お手数ですが教えて頂けると助かります。


 >「:」をうつのが手間なので「.」で代用したいのです
 「.」だと小数点を打つときに困るので「..」で代用する方法があります。
[[20040523125849]]『時間入力の自動変換』(koko)

 >セルCは計算式を入力、結果を少数で表示するように設定したいのです
 =(B1-A1)*24 として、書式は数値などにする。
 30分が0.5になります。
 ただし、終了時刻が24:00を超えることがないものとします。
 (sato)


kokoさん、satoさんありがとうございます。ばっちりです。大変助かりました。(ごりら)


すいません、もう一点教えてもらいたいのですが。勤務時間を正確に計算するには昼休みや休憩時間を引かなければならないのですが、それを自動でセルCに反映させたいのですが可能でしょうか?ちなみに、昼休みは12:00〜12:40で、休憩は15:00〜15:10です。すなわち、開始時間が10:00で、終了時間が17:00だとすると、実質勤務時間は6時間10分(6.13時間)となるわけですが。人によっては午前中だけの人、または午後だけの人や、1,2時間だけの人もいるので関数式をどうやって作ったらいいかまるで分かりません。お手数ですがご指導下さい。(ごりら)

全ての条件を提示してくれると回答しやすいのですけど
上に書かれているもので全てですか?(KD)

KDさんすいません。セルAに生産数(やった数)を入力、セルBに開始時間、セルCは終了時間、セルDが故障時間(機械が壊れて生産できなかった時間。ランダムです)、セルEが休憩時間、セルFが勤務時間(セルB−セルAーセルDーセルE)、セルGが生産効率(セルA/セルF)と現在は設定しています。しかし、セルDの休憩時間をいちいち計算するのが手間なので、セルD自体を省いてあらかじめセルFの入力式に組み込めたらと思いまして。本当はセルDの故障時間も自動だといいんですがランダムなんで、これは目をつむります。いかがでしょうか?(ごりら)

え〜とですね 例えば <1,2時間だけの人もいるので 

の場合で12:00〜12:40の間の場合、 15:00〜15:10の間に

開始 または 終了した場合  などの  条件を知りたいのです。

全ての条件が出ていないのであれば回答が難しいのです。(KD)


すいません条件の意味を把握しておりませんでした。開始時間が12:00〜12:40と15:00〜15:10の人は一切いません。この場合は必ず12:40か15:10開始となります。しかし、終了時間がその間の時間になることはあります。例えば12:10や12:40終了や15:10あるいは15:05終了など、終了時間が12:01〜12:39の間と15:01〜15:09の間の場合です。この場合は勤務時間として出来れば計算したいです。ただし、終了時間がこの枠を超えたときは計算しません。例えば、開始10:00終了12:30の人はこの昼休みの30分も勤務時間に含みたいのですが、開始10:00終了12:50の人は昼休みの40分は除外ですので勤務時間が2時間10分となります。このような形でよろしいでしょうか?可能でしょうか?よろしくお願い致します。(ごりら)

おそくなりました。ちょっと席をはずしてました。

とりあえず上記の条件を考えて作ってみますので

しょうしょうお待ちを(KD)


ながらくお待たせいたしました。

かなり長いしきになりましたがどうでしょうか?

F2=IF(B2>"15:10",(C2-B2-D2)*24,IF(C2<"12:40",(C2-B2-D2)*24,IF(AND(B2<"12:00",C2>"15:10"),(C2-B2-D2-"0:50")*24,IF(AND(B2<"12:00",C2<"15:00"),(C2-B2-D2-"0:40")*24,IF(AND(B2>"12:40",C2>"15:10"),(C2-B2-D2-"0:10")*24,(C2-B2-D2)*24)))))

いちおう検証しましたが、不具合があるかも

時間の計算は:を使ってやった方がわかりやすいと思いますが…

(KD)


KDさん、ありがとうございます。しかしながら、計算の答えがあいません。私も素人なりに式を理解しようしたところ理論は間違っていないような気はしますが。すいませんが、お助け下さい。(ごりら)


 時間の比較でB2に時間のシリアル値が入力されている場合、
 B2>"15:10"
これは数値と文字列との比較となり、必ずFALSEとなるので、注意が必要。
http://miyahorinn.fc2web.com/faq/faq020.html#2b
(みやほりん)

みやほりんさんご指摘ありがとうございます。
TEXT同士の比較を参照どおり試してみましたが、答えが変わりません。以下貼り付けてみまたした。何かおかしいところがありましたら教えてください。
=IF(TEXT(I258,"h:mm")>="15:10",(J258-I258-K258)*24,IF(TEXT(J258,"h:mm")<"12:40",(J258-I258-K258)*24,IF(AND(TEXT(I258,"h:mm")<"12:00",TEXT(J258,"h:mm")>="15:10"),(J258-I258-K258-"0:50")*24,IF(AND(TEXT(I258,"h:mm")<"12:00",TEXT(J258,"h:mm")<="15:00"),(J258-I258-K258-"0:40")*24,IF(AND(TEXT(I258,"h:mm")>="12:40",TEXT(J258,"h:mm")>="15:10"),(J258-I258-K258-"0:10")*24,(J258-I258-K258)*24)))))
よろしくお願い致します。(ごりら)

すいません、補足ですが。ちなみに、I258に入力されている値は7:00、J258の値は16:50、K258の値は0:30です。(ごりら)

 シートレイアウトが分からないので、下記のようになっているとして。

     A       B        C        D         E       F        G
 1 生産数 開始時間 終了時間 故障時間 休憩時間 稼働時間 生産効率
 2           10:00    13:00              0:40     2:20 
 3            7:00    16:50     0:30     0:50     8:30 
 4           10:00    12:30              0:00     2:30

 E2
 =IF(COUNT(B2:C2)=2,AND(B2<"12:0"*1,C2>="12:40"*1)*"0:40"+AND(B2<"15:0"*1,C2>="15:10"*1)*"0:10","")
 F2
 =IF(E2="","",C2-B2-D2-E2)
 とすれば、上のようになります。
 (kkk)

kkkさん、すいません。意味は分かりませんが、トライしてみます。ただし、E列の休憩時間は省きたいのです。F列の稼動時間の数式で一発で稼動時間が分かるようにしたいのですが。(ごりら)

 ※まずは、今の式で、稼働時間に希望の値が出るのかを確認するのが先決でしょう。

 その上で、休憩時間の列を省くように、式を変えればいいと思います。、
 ただし、休憩時間の式が理解できないままで、何でもかんでも一発で出るようにと、数式を長くすれば、
 なおさら分かりづらくなるだけです。
 E列が目障りなら、列を非表示にすればいいと思います。
 どうしても一つの式にする必要があるのなら、F列の式に、E列の式(基本部分)を代入すればいいでしょう。
 (kkk)

*教えて頂きながらすいません。順序が逆でした、申し訳ございません。

kkkさんありがとうございます。完璧に作動しました。(ごりら)


度々すいません。上記kkkさんに教わりました式ですが、私自身が式の意味を把握できないで応用がききません。一人の方が1日に2シフトという新たなパターンがでてきましたので、開始時間と終了時間を1列づつ増やすことになりました。すなわち、

     A       B        C        D         E       F        G        H       
 1 生産数 開始時間 終了時間 故障時間 休憩時間 稼働時間 開始時間 終了時間 
 2           10:00    13:00                        17:30      18:30
 3            7:00    16:50             
 4           10:00    12:30                             15:30      17:00

 E2
 =IF(COUNT(B2:C2)=2,AND(B2<"12:0"*1,C2>="12:40"*1)*"0:40"+AND(B2<"15:0"*1,C2>="15:10"*1)*"0:10","")
 この式を応用した、E2の求め方教えてください。よろしくお願いします。(ごりら)


 意味を取り違えているかも分かりませんが。
 単純に、それぞれの休憩時間を出して、足してやればいいのではないでしょうか。
 式は長くなりますが。
 E1
 =IF(COUNT(B2:C2)=2,AND(B2<"12:0"*1,C2>="12:40"*1)*"0:40"+AND(B2<"15:0"*1,C2>="15:10"*1)*"0:10"
 +AND(G2<"12:0"*1,H2>="12:40"*1)*"0:40"+AND(G2<"15:0"*1,H2>="15:10"*1)*"0:10","")
 F2
 =IF(E2="","",SUM(C2-B2,H2-G2)-D2-E2)
 (kkk)

kkkさん、重ね重ねありがとうございます。ばっちりでした。(ごりら)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.