過去の桐井戸端BBS (桐ver.9)
29139 指定月の曜日に対応した日付を表示したい 広田 2005/02/24-12:23
お世話になります。質問ばかりで申し訳ないです。

[氏名]、[月]、[曜日]、[来社日]とあって
[月]に”3”、[曜日]”火”と入力すると、
[来社日]に、今年なら”1,8,15,22,29”という日付を表示したのですが、可能でしょうか?

別表にカレンダーを作っていろいろ頑張ってみたのですがうまくいきません。よろしくお願いします。
29140 Re:指定月の曜日に対応した日付を表示したい 今村 誠 2005/02/24-14:17
記事番号29139へのコメント
広田さんこんにちは月だけでは曜日はでないので年も合った方がいいと思います。
作業数値を月に作業文字を曜日に代えて置換してみてはいかが

#COND([作業数値],
#計算(#代入(&STR,#STR(#cond(
#月(#日時値生成(#年(#日時値),[作業数値]))>=#月(#日時値),
#日時値生成(#年(#日時値),[作業数値],1),1,
#日時値生成(#年(#日時値)+1,[作業数値],1)))),
#代入(&秒,#COND(
#文字位置("日月火水木金土",#曜日(&STR))<#文字位置("あ日月火水木金土",[作業文字1]),
#文字位置("あ日月火水木金土",[作業文字1])-#文字位置("日月火水木金土",#曜日(&STR)),1,7+#文字位置("あ日月火水木金土",[作業文字1])-#文字位置("日月火水木金土",#曜日(&STR)))),
#str(&秒)+","+#str(7+&秒)+","+#str(2*7+&秒)+#COND(#NUM(#月末(&STR))>=(3*7+&秒),","+#str(3*7+&秒))))

29143 Re:指定月の曜日に対応した日付を表示したい 今村 誠 2005/02/24-21:35
記事番号29140へのコメント
こんにちは、#月末を勘違いしていました。(-.-)
月末の日付でなく年月日を返しているので下記の式に変更して下さい。
(今月だと平成17年2月28日で28日ではなかったので比較できなかったようです)

#COND([作業数値],
#計算(#代入(&STR,#STR(#cond(
#月(#日時値生成(#年(#日時値),[作業数値]))>=#月(#日時値),
#日時値生成(#年(#日時値),[作業数値],1),1,
#日時値生成(#年(#日時値)+1,[作業数値],1)))),
#代入(&秒,#COND(
#文字位置("日月火水木金土",#曜日(&STR))<#文字位置("あ日月火水木金土",[作業文字1]),
#文字位置("あ日月火水木金土",[作業文字1])-#文字位置("日月火水木金土",#曜日(&STR)),1,7+#文字位置("あ日月火水木金土",[作業文字1])-#文字位置("日月火水木金土",#曜日(&STR)))),
#str(&秒)+","+#str(7+&秒)+","+#str(2*7+&秒)+","+#str(3*7+&秒)+#COND(#日(#月末(&STR))>=(4*7+&秒),","+#str(4*7+&秒))))
29148 すごい!! 広田 2005/02/25-09:03
記事番号29143へのコメント
今村 誠さん ありがとうございます。

仰るとおりに置換したらものの見事に私の希望する結果が得られました。
いきなり解答をいただいて感謝感激です。
記述の意味がよく分からないので、これからよく勉強したいと思います。
…ホントにできるかな…(^^;

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

29152 Re:指定月の曜日に対応した日付を表示したい 今村 誠 2005/02/25-11:44
記事番号29143へのコメント
#MODを使うと式が短くなるようです

#COND([作業数値],
#計算(#代入(&STR,#STR(#cond(
#月(#日時値生成(#年(#日時値),[作業数値]))>=#月(#日時値),
#日時値生成(#年(#日時値),[作業数値],1),1,
#日時値生成(#年(#日時値)+1,[作業数値],1)))),
#代入(&秒,#MOD(7+
#文字位置("日月火水木金土",[作業文字1])-#文字位置("日月火水木金土",#曜日(&STR)),7)+1),
#str(&秒)+","+#str(7+&秒)+","+#str(2*7+&秒)+","+#str(3*7+&秒)+#COND(#日(#月末(&STR))>=(4*7+&秒),","+#str(4*7+&秒))))

戻る