[[20071107151905]] 『作業時間の計算』(カッパ) ページの最後に飛ぶ

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

 

『作業時間の計算』(カッパ)

作業の開始時間と終了時間を入力すると、作業時間合計欄に
その月作業時間合計が計算されるような表を作りたいのです。
教えてください、よろしくお願いします。

 A列   B列   C列    D列   E列   F列   G列
 11/28		11/29		11/30		
 Wed		Thu		Fri		作業時間合計
 12:00	17:45	15:00	18:00	15:00	17:45	


も〜っと良い方法があるとは思いますが… (くみりん)

 作業時間合計 = 終了時間(合計) - 開始時間(合計) ではダメかしら。

 やっぱり衝突〜♪
 >その月作業時間合計
任意月の合計として考えました。
データ部分が、上から1,2,3行目とすると、
=SUMPRODUCT((TEXT($A$1:$E$1,"yyyy/m")="2007/11")*($B$3:$F$3-$A$3:$E$3))
今月の 場合は~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ を MONTH($A$1:$E$1)=MONTH(TODAY())
※年部分が複数年あるなら、"2007/11" ここを TEXT(TODAY(),"yyyy/m") の様にするなど、
 日付部分の処理は、お好き。。。
時間形式で表示されるなら、表示形式は、[h]:mm が無難かも? 
(sin) ちょこっと修正!(~を1こ 取りました。。。)

 くみりんさんと同じですが・・・・
 偶数列の合計から、奇数列の合計を引くのでは駄目ですかね?
[[20060706150139]]『1列おきの合計』(EHO)

 「その月の」を指定する必要があるのなら、もう少し
 条件を増やす必要がありそうですが。

 (HANA)

皆さま、ありがとうございます。

この数式使わせていただきましたが、結果は#N/A・・
=SUMPRODUCT((TEXT($A$1:$E$1,"yyyy/m")="2007/11")*($B$3:$F$3-$A$3:$E$3))
コピペして行をあわせたんですが、うまくいかなかったです。
私の作業のどのあたりに、問題がありそうでしょうか?

『一列おきの合計』はやってみたのですが、もっとスタイリッシュな形で作れ!
が上司の命令です・・・。能力超えた作業ですだす(ToT)

(カッパ)


 データそのものを見れないので、以下思いつくままですが。。。
・A1,C1,E1セルの入力はどうされてますか?
・B1,D1,F1セルは、空白のままですか?
・時間入力部分に#N/Aが、ありませんか?
・データに2007年11月のデータはありますか?

 >もっとスタイリッシュな形で作れ!
何を意図するものなのか?私には理解できません。。。
     A           B     C     D       E
 1  日付       曜日 開始  終了 作業時間
 2 2007/11/28    Wed  12:00 17:45  =IF(COUNT(C2:D2)=2,D2-C2,"")
 3 2007/11/29    Thu  15:00 18:00  ↑これをコピー。
私は、こっちの形式が好きですが・・・
(sin)

以下のように入力してあります。

A1,2007/11/1

C1,2007/11/2

E1,2007/11/3

B1,D1,F1 は空白

時間入力部分に#N/Aなし
データに2007年11月はなし

また、Sinさんお勧めいただいた=IF(COUNT(C2:D2)=2,D2-C2,"")を使ったリストは私も考えたのですが、

プロジェクトNoを縦に(A列)において、11/30の横に、工数合計の計算式を入たいというのが
最終目標なので、横に日付を入れた表にこだわりたいと思ってます。

やっぱり私のデータの入れ方に問題ありかな?
お助けください!


EHOさんお勧めの、偶数列合計から、奇数列合計を引くに再度トライしてます。
もう、上司の顔色伺うどころではありません(笑)

時間の計算が苦手です。
24時間を越える計算を作れません。
合計欄を 185:15(185時間15分)と表示させるには、どうすればよいのでしょうか??

教えてください、よろしくお願いいたします。

(カッパ)@おバカですみません。


 2007年11月以外のデータは有りませんか?
 無い場合は、sinさんのSUMRPODUCT関数を使って
=SUMPRODUCT(($A$1:$E$1<>"")*($B$3:$F$3-$A$3:$E$3))
                  ~~~~       ^^^^           ~~~~
 こんな感じにしてみるのはどうですかね?
 合計欄は、表示形式を [h]:mm にして下さい。

 式を実際のデータに合わせる際に気を付ける点は
 データがA列からF列迄入っている場合
  最初の参照範囲 A:E(最初の列から一つ前の列まで)
  次の参照範囲   B:F(次の列から最後の列まで)
  最後の参照範囲 A:E(最初の列から一つ前の列まで)
 と、ずらして下さい。

 上手く行かない場合は、
  実際のセル番地
  実際に入力されているデータ
  上手く行かない数式
 を教えて下さい。

 (HANA)

 >時間入力部分に#N/Aなし
#N/Aの原因として考えられるのは、範囲内に#N/Aが存在するとしか考えられないのですが(私には)、
開始時間と終了時間の間 または 日付と日付の間 に別項目のセル(時間以外の要素)が存在し、
その部分に#N/Aが存在していませんか?
一番左の開始時間のセル と 一番右の終了時間のセル の間のどこかのセルに です。
もし存在するなら仮に#N/A問題が解決したとしても、合計計算の結果が違って来る可能性大です。
 HANAさんの言われているように、実際のレイアウトと入力データの例および入力した式内容を知りたいですね。
見せたくない文字等あれば、ABCとかに置き換えてもいいので。
(sin)

 >#N/Aの原因として考えられるのは
 私は、参照範囲が合っていないのだと思いますが・・・。
 たとえば
=SUMPRODUCT(A1:A3-B2:B3)
 こんな式は#N/Aが出ます。
 A3の相方が居ませんから。

 (HANA)

 あら、本当だ!
私は、範囲が違う場合は、【#VALUE!】が出るもんだと思ってました。
今まで結構な数の ウソ をついてたかも?
この場を借りて <(_  _)> ごめんなさい。      "頭がでかい">>
(sin)

 A列   B列   C列   D列   E列   F列

	 11/1		 11/2

P/J  Thu  Fri 合計工数

BXXXXXX  9:00  17:45  9:00 17:45 #VALUE!

F3=SUMPRODUCT((TEXT($A$1:$E$1,"yyyy/m")="2007/11")*($B$3:$F$3-$A$3:$E$3))

以上のように作ったところ、うまくいきません。
風薬飲んで、激しい睡魔と格闘中で、余計に混乱。。

本当に、理解できない子でごめんなさい。
どうすればよいのか、再度教えてください!!

(カッパ)@発熱中


 カッパさんが最初にご提示のデータは
 時間が入力されている最初の列
 (計算する範囲の最初の列)がA列となっていますが
 今回のものは、B列からになっています。

 なので、範囲も一列ずれますよね。
 今回のサンプルでは計算するのはB:Eの範囲ですから、↓の様になると思います。
=SUMPRODUCT((TEXT($B$1:$D$1,"yyyy/m")="2007/11")*($C$3:$E$3-$B$3:$D$3))

 計算するのは、A:Fの範囲ではないでしょ?
 最初のサンプルでは、計算するのがA:Fの範囲でしたよ。

 (HANA)

 HANAさんから回答がでていますので解決していると思いますが、参考までに

 F3=SUMPRODUCT((TEXT($A$1:$E$1,"yyyy/m")="2007/11")*($B$3:$F$3-$A$3:$E$3))
 この式の問題点
 1 範囲に文字列が有り、それを四則演算に使用している
 (A3が文字で B3-A3 でエラーとなる) 
 2 循環参照になっている

 すなわち、A3が空白又は数値であり、この式がG3であれば期待する値になりますよ

 By しげちゃん

ありがとうございました。
助かりましたーーー!
期待する表ができました。

次のような条件を、教えていただいた数式に入れることは可能でしょうか?

もし、B列9:00からC列17:30の間作業したとしたら、1時間の休憩を引きます。
さらに、17:30以降作業をしたら、15分の休憩を引きます。

引き続き、教えていただきたく思います、どうぞよろしくお願いします。

(カッパ)


 >B列9:00からC列17:30の間作業したとしたら、1時間の休憩を引きます。
9:00以前から17:30以降まで作業したらとすると
($C$3:$E$3>=--"17:30")*($B$3:$D$3<=--"9:00")*"1:00"
C3:E3セルの値が『17:30』という文字列を正の数値にしたもの以上 であれば TRUE
B3:D3セルの値が『9:00』    〃       〃    以下 であれば TRUE の配列計算に
『1:00』という文字列を掛ける。
※【--】は、 (-1)*(-1) とお考え下さい。
 ・TRUE,FALSEを加減乗除の計算に用いると1,0に置き換えて計算されます。
 ・数字と判断される文字列も、加減乗除の計算では、数値と判断され計算されます。
 ですので、上記要素をSUMPRODUCT関数(配列計算)の中で引いてあげれば、よろしいかと思いますが。

 >さらに、17:30以降作業をしたら、15分の休憩を引きます。 
この『さらに』は、どう判断すればよいのでしょう???  条件? 行為?
とりあえず、上で書いている事を参考に一度お考え下さい。
数式の作り方によっては、EXCEL君が『もう嫌や!』って拗ねるかも。。。
(sin)

『さらに』は、とくに意味はなく

通常業務時間の9:00から17:30の作業時間から、45分休憩分を引き、(実は休憩は45分だったことが判明)
もし、17:30以降に作業(残業)をした場合、15分休憩を引くということです。

Sinさん、丁寧なご説明ありがとございます。
ただ・・・。私、理解できないです。すみません。
どこが?といわれたら、ほぼ、わかりません。
でも、ここでくじけたら、悔しいのでわからないなりに、やってみようと思います。
本日は時間がないかもしれないので
明日にかけてやってみます。

ありがとうございました。

(カッパ)


 ヒントになるかは分らないけど、こんなの作ってみました。
     A	         B	C	  D	 E	 F	 G	 H	 I
 1  日付	       開始時間	終了時間		2007/11 9:00以前  17:30以降	E*F*G	I*"0:45"
 2 2007/10/31	9:00	17:30		FALSE	TRUE	TRUE	0	0:00
 3 2007/11/1	8:45	17:45		TRUE	TRUE	TRUE	1	0:45
 4 2007/11/2	9:30	20:00		TRUE	FALSE	TRUE	0	0:00
 5 2007/11/3	8:45	16:00		TRUE	TRUE	FALSE	0	0:00
 					↑式_1	↑式_2	↑式_3	↑式_4	↑式_5
 A1:C5は、入力データ  E1:I1は、簡単なメモとしてます
 式_1: =TEXT(A2,"yyyy/m")="2007/11"
 式_2: =B2<=--"9:00"
 式_3: =C2>=--"17:30"
 式_4: =E2*F2*G2
 式_5: =H2*"0:45"
※式_2と_3は、『--』を付けてない場合もお試し下さい。
SUMPRODUCT関数は、各セル(E2:G5部分)と各行(H:I部分)そして合計(=SUM(I2:I5))の計算をやってます。
まずは、これをSUMPRODUCT関数で作ってみては?
(sin) 

コメント返信:

[ 一覧(最新更新順) ]


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