■13141 / inTopicNo.1) |
Re[1]: 指定した休日を除外して日にちを求めたい
|
□投稿者/ natsu -(2021/10/03(Sun) 17:03:57)
| 2021/10/03(Sun) 17:07:49 編集(投稿者)
一括処理だと、すごく楽に求められますが、表の項目計算式だと少々厄介です。 というか、表の項目計算式は簡単に作成できる代わりに、ちょっと複雑なことを仕込むとメンテナンスが大変になるので、項目計算式は避けるようにしています。
前置きはこれくらいにして、項目計算式で作成してみました。 8項目の表になります。
【項目1】連番(長整数): 【項目2】日付(日時):#日数加算( d"2021/12/31", 1-[連番] ) 【項目3】曜日(文字列):#曜日( [日付] ) 【項目4】祝日(文字列):#表引き( [日付] , = , "syukujitsu.tbl" , [国民の祝日・休日月日] , [国民の祝日・休日名称] ) 【項目5】休日(文字列):#cond([曜日]="土","休",[曜日]="日","休",[祝日]≠"","休") 【項目6】所要日数(長整数): 【項目7】経過日数(長整数):#cond([所要日数]≠0,[所要日数],#直前値([経過日数],0)>0,#cond([休日]≠"休",#直前値([経過日数],0)-1,[休日]="休",#直前値([経過日数],0))) 【項目8】経過日数・修正(長整数):#cond([経過日数]=1,#cond( #直前値([経過日数],0)=1,#U,#直前値([経過日数],0)>1,[経過日数]),[経過日数]>1,[経過日数],1,#U)
【項目1】【項目2】について 空の表に「Ctrl+↓」で必要な行を確保して、【項目1】を#連番で置換すればカレンダー作成が楽です。
【項目4】について 内閣府が祝日データ(CSV)をWebで公開しています。それを桐の表に変換して、#表引きで反映しました。 https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv
【項目5】について 土曜・日曜・祝日をスキップ日として"休"としました。平日でも会社の創立記念日で稼働しない日や、逆に休日でも稼働する日があると思いますので、この項目は適宜アレンジとなります。
【項目6】について "生産計画の生産日"の行に必要な稼働日数を入力します(例えば50日だったら50)。この項目は複数の行への入力は想定していませんのであしからず。 それから、休日に"生産計画の生産日"を設定するといけませんので、【項目6】の行制約式に [休日]="休" .and [所要日数]=#U .or [休日]<>"休" を設定してください。行制約式の下にエラーメッセージの欄がありますから「休日を開始日に指定しています」を入力しておきましょう。
【項目7】について この表の本体です。目で見て一つづつ入力するステップをそのまま項目計算式にしてあります。
【項目8】について 求める日の翌日が休日の場合、ちょっと残念な結果になるので、その修正です。
【項目6】を入力したら、【項目8】を置換して再計算させてください。
ご確認ください。
|
|