[[20060113155050]] 『自動で日付をさかのぼる関数』(株株) ページの最後に飛ぶ

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

 

『自動で日付をさかのぼる関数』(株株)

[自動で日付をさかのぼる(条件付で)関数を教えてください]

 A       B     C

N-55  2006/1/1    日

N-49  2006/1/7    土

N-45  2006/1/11   水

N-43  2006/1/13   金

N-42  2006/1/14   土

N-35  2006/1/21   土

N-28  2006/1/28   土

N-27  2006/1/29   日

N-6   2006/2/19   日

N     2006/2/25   土
 

と一番下に2006/2/25と手動で入力し上に行くにつれて自動で日付が古くなります。
(N-○○日)というように。しかし土・日・祝が考慮されなくて困っています。
(土・日・祝は金になるようにしたい・日付と共に)
さらにN-6のところだけはN日の前週の木曜日に固定したいです。
どなたかご教授お願いします。


上手く行くかどうか分かりませんが

E・F・G・H列を作業列とします。

	A	B	C	D	E	F	G	H
   1	N-55	12月30日	金		1/1	12/30	FALSE	12/30
   2	N-49	1月6日	金		1/7	1/6	FALSE	FALSE
   3	N-45	1月11日	水		1/11	1/11	FALSE	FALSE
   4	N-43	1月13日	金		1/13	1/13	FALSE	FALSE
   5	N-42	1月13日	金		1/14	1/13	FALSE	FALSE
   6	N-35	1月20日	金		1/21	1/20	FALSE	FALSE
   7	N-28	1月27日	金		1/28	1/27	FALSE	FALSE
   8	N-27	1月27日	金		1/29	1/27	FALSE	FALSE
   9	N-6	2月16日	木		2/16	2/16	FALSE	FALSE
  10	N	2月25日	土					

 B1=IF(H1=FALSE,IF(G1=FALSE,F1,G1),H1)
 C1=B1 ●セルの書式設定をユーザー定義で aaa として下さい。
 →9行目までコピー

 E1=DATE(YEAR($B$10),MONTH($B$10),DAY($B$10)-RIGHT(A1,LEN(A1)-FIND("-",A1)))
 →8行目までコピー

 F1=IF(WEEKDAY(E1)=1,DATE(YEAR(E1),MONTH(E1),DAY(E1)-2),IF(WEEKDAY(E1)=7,DATE(YEAR(E1),MONTH(E1),DAY(E1)-1),E1))
 G1=IF(COUNTIF($J$1:$J$16,F1)=1,IF(WEEKDAY(F1)=1,DATE(YEAR(F1),MONTH(F1),DAY(F1)-2),IF(WEEKDAY(F1)=2,DATE(YEAR(F1),MONTH(F1),DAY(F1)-3),DATE(YEAR(F1),MONTH(F1),DAY(F1)-1))))
 H1=IF(COUNTIF($J$1:$J$16,E1)=1,IF(WEEKDAY(E1)=1,DATE(YEAR(E1),MONTH(E1),DAY(E1)-2),IF(WEEKDAY(E1)=2,DATE(YEAR(E1),MONTH(E1),DAY(E1)-3),DATE(YEAR(E1),MONTH(E1),DAY(E1)-1))))
 →9行目までコピー

 E9=DATE(YEAR(B10),MONTH(B10),DAY(B10)-WEEKDAY(B10)-2)

 J列に祝日を入力(今回使ったデータは以下です)
	J
   1	2006/1/1
   2	2006/1/2
   3	2006/1/9
   4	2006/2/11
   5	2006/3/21
   6	2006/4/29
   7	2006/5/3
   8	2006/5/4
   9	2006/5/5
  10	2006/7/17
  11	2006/9/18
  12	2006/9/23
  13	2006/10/9
  14	2006/11/3
  15	2006/11/23
  16	2006/12/23

 ●但し、5月や9月の連休の様に平日(月〜金)で休みが連なった場合
   祝日と重なり移動した日付が祝日の場合は正しく表示されません。
   注意してください。
 ●その他、作って載せたのですがあまり自信はないので様子を見ながら使ってください。

 式の内容は
   E列 指定日付前を表示
   F列 指定日付前が土日であれば日付を前に
   G列 指定日付前が土日でさらに金曜日が祝日の場合もう一日前に
   H列 指定日付前が祝日であれば日付を前に
 と言った感じで作ってあります。
 (どうしても連休が気になるようならG列のような式をH列に関して
  必要列増やしてください。)

 上手く使えるといいのですが。

 (HANA)

 「気を付けてください」だけでは申し訳ないので
 D1=IF(OR(WEEKDAY(B1)=1,WEEKDAY(B1)=7,COUNTIF($J$1:$J$16,B1)),"■","")
 →9行目までコピー
 表示されている日付が土日祝でないかどうかチェックする関数です。
 土日祝であれば、■が表示されます。

 (HANA)


HANAさん本当にありがとうございます!
早速やってみます!(株株)

コメント返信:

[ 一覧(最新更新順) ]


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