[[20060710155241]] 『繰越日数を算出』(ばんばん) ページの最後に飛ぶ

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

 

『繰越日数を算出』(ばんばん)
 いつも、お世話になってます。
下記の表を管理しているのですが、繰越日数を算出する為の数式を教えて下さい。
今はそれぞれ下の式を入れています。
繰越日数は、0.5日単位で繰り越され、消化される順序は昨年度の@繰越日数、A今年度支給日数の順に消化されます。
問題は、繰越日数が0.5日残っている状態で、1.0日休暇を取得した場合、
繰越日数の0.5日を0にしてから、今年度支給分から0.5日引きたいのですが、
今の式ではできません。
N7に入れる式をご教授下さい。

 *今年度使用できる日数を算出する為の一覧*     
       A    B    C   D 
 8支給日         2006/4/1
 9支給日数       12.0日
10繰越日数        4.5日
11合計日数       16.5日   

 C9=IF(OR(平成17年度!C9=3,平成17年度!C9=5,平成17年度!C9=7,平成17年度!C9=10),11,
    IF(平成17年度!C9=11,12,IF(AND(平成17年度!C9>11,平成17年度!C9<18),平成17年度!C9+2,20)))
C10=平成17年度!C16
C11=SUM(C9:C10)

 *管理台帳*
      G           H       I         J         K         L        M        N     
      日付        休暇    休暇      申請      理由      残日数   支給日数     繰越日数
                  時間    種別                休出日
______________________________________________________
 6   4/11         1.0      有休     ○                  15.5     12.0          3.5
 7   4/12         1.0      有休     ○                  14.5     12.0          2.5    
 8   4/13         1.0      有休     ○                  13.5     12.0          1.5    
 9   4/14         1.0      有休     ○                  12.5     12.0          0.5    
10   6/15         1.0      有休     ○                  11.5     11.5          0.0
                                                                              ↑繰越が0.5日残っているので、そこから0.5日引きたい。
                                                                                 それから、今年度支給された分から0.5日引きたい。

 残日数(L列)は、今年度4月に支給された日数=12.0日+昨年度の繰越日数=4.5日を足したもの。
支給日数(M列)は、今年度4月に支給された日数。昨年度の繰越日数が0.0日の場合は、今年度支給日数から今回取得日数を引く。
繰越日数(N列)は、昨年度支給された分の残りの日数。(0.5日単位)繰越分がある場合はまず、繰越分から消化される。

 以上の条件で、現在、
L6=IF(J6="","",IF(I6="有",IF(J6="○",C11-H6,""),C11))←一覧で算出した日にちから引いてます。
L7=IF(H7="","",IF(J7="○",IF(I7="有",L6-H7,L6),""))
M6=IF(H6="","",IF(J6="○",IF(I6="有",IF(C10<=0,C11-H6,C9),C9)))←一覧で算出した日にちから引いてます。
M7=IF(H7="","",IF(J7="○",IF(I7="有",IF(N6<=0,M6-H7,M6),M6),""))
N6=IF(J6="","",IF($C$10-SUM(H6:H6)<=0,0,IF(I6="有",$C$10-H6,C10)))←一覧で算出した日にちから引いてます。
N7=IF(H7="","",IF(J7="○",IF(I6="有",IF($N6-H7<0,0,$N6-H7),N6),""))
の数式が入っています。

 説明が、分かりにくいかもしれないのですが、よろしくお願い致します。

 IFの条件は別として最後の部分だけですが、このようなことでしょうか?
 L7 =M7+N7
 M7 =M6+(N7=0)*(N6-H7)
 N7 =MAX(0,N6-H7)
(純丸)(o^-')b

 純丸さま、ご教授ありがとうございます。

 >最後の部分だけですが
とコメントを頂いたので、それぞれ最後のIF関数の"偽の場合"に当てはめてみました。
…純丸さんがおっしゃっていた最後はここの事でしょうか?
L7=IF(H7="","",IF(J7="○",IF(I7="有",L6-H7,M7+N7),""))
M7=IF(H7="","",IF(J7="○",IF(I7="有",IF(N6<=0,M6-H7,M6+(N7=0)*(N6-H7)),M6),""))
N7=IF(H7="","",IF(J7="○",IF(I7="有",IF($N6-H7<0,0,$N6-H7),MAX(0,N6-H7)),""))
計算結果はあっているのですが、
もし違っていたら、ご指摘よろしくお願い致します。
(ばんばん)

 何度もすみません。
初めに提示した式なのですが、有休を取得した場合と代休を取得した場合を
IF(I7="有"…で分けて計算していました。
ご提示頂いた式を最初に提示した式に入れたいのですが、どこに入れればいいでしょうか?
お手数をお掛けしますが、よろしくお願い致します。
(ばんばん)

 よく分かりませんが

	[G]	[H]	[I]	[J]	[K]	[L]	[M]	[N]
  [4]	日付	休暇	休暇	申請	理由	残日数	支給日数	繰越日数
  [5]		時間	種別		休出日	16.5 	12.0 	4.5 
  [6]	4/11	1.0 	有	○		15.5 	12.0 	3.5 
  [7]	4/12	1.0 	有	○		14.5 	12.0 	2.5 
  [8]	4/13	1.0 	有	○		13.5 	12.0 	1.5 
  [9]	4/14	1.0 	有	○		12.5 	12.0 	0.5 
  [10]	6/18	1.0 	有	○		11.5 	11.5 	0.0 

 L5=M5+N5
 M5=C9
 N5=C10
  ★作業セルなので文字色を白にして下さい。

 L6=IF(H6="","",IF(J6="○",IF(I6="有",IF(N6>=0,M6+N6,M6),L5),""))
 M6=IF(H6="","",IF(J6="○",IF(I6="有",IF(N6>0,M5,$M$5+($N$5-SUM($H$6:H6))),M5),""))
 N6=IF(H6="","",IF(J6="○",IF(I6="有",IF(N5-H6<0,0,N5-H6),N5),""))
 として下にコピー でどうでしょう?
    ※式訂正しました。(7/11 22:45)

 所で、無届けで休んだ場合有給残は取り上げですか?
 ・・・事後でも出してもらえばよくて、その催促の為に
 空欄表示にしてあるんですかね。

 (HANA)

 >IF(I7="有"…で分けて計算していました
 で、最終的に計算するところはどこなんですかね?
 (代休だと引き算しないんですよね?)
 そこに(純丸)さんの式を入れればいいかと思いますが。

 新しい条件がでて、その時にどうしたいのかを書いてもらわないと
 どこに入れればいいのかは・・・・わからないと思いませんか?

 どの条件の時に何をするのか、式を作る前に一度表にしてみると
 わかりやすいかもしれませんね。

 (HANA)

 HANAさん、ありがとうございます。
ご理解に苦しむ内容ですみませんでした。
(言い訳ですが)ちょっと、バタバタしていたもので…。
今日は時間があるので少し自分なりに整理して考えてみます。
また分からなくなったら、質問させてください。
よろしくお願い致します。
(ばんばん)

 追加質問の回答を失念しておりました。申し訳ありません。
 HANAさん、フォローをありがとうございましまた。
(純丸)(o^-')b

コメント返信:

[ 一覧(最新更新順) ]


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