- ベストアンサー
EXCELで年間当番表の作成
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
回答No.3の追加情報です。 アイデアを求めていると判断しましたので完成した表の画像を添付します。 条件 A1セルには2016と数値の西暦年を入力します。 B1セルには1と数値で対象月を入力します。 カレンダーは回答No.3で提示した通りですが2016年12月を2016年1月にしました。 J列からN列は2016年1月1日から2016年12月31日までの当番割り付けの指標です。 P1セルからS8セルはメンバーの割り付け順の一覧表です。 U列からV列は2016年の祝日一覧表です。 割付の考え方としては予め作成した当番割付の指標(平日、土曜日、日曜祝日毎に番号で順に指標を作成します。 この指標を使ってメンバーの割り付け順番の一覧表から順に引き当てます。 指標のNoの最大値は平日が247、土曜日が47、日曜・祝日が72になりました。 これらの値をMOD関数で7の除数の余りが0から6になりますのでメンバーの割り付け順の一覧表と突き合わせて該当者を抽出します。 カレンダーの日にちから曜日と祝日を割り出して指標の番号を抽出する数式が複雑な論理になりますが学習して数式を組み立ててください。 その値からメンバーを抽出する数式も1つの数式に組み込めますが長い数式になり解読が困難になるでしょう。 私の数式を提示しても論理を理解できないと思いますので提示しません。 作業用の領域を作成して数式を簡素化すればあなたにも数式を組めると思いますので挑戦してください。
その他の回答 (3)
- bunjii
- ベストアンサー率43% (3589/8249)
>アイディアが浮かばないので、お力添えいただけませんでしょうか。 システムエンジニアに有料で依頼すべき内容です。 尚、質問に添付画像のカレンダーは日付と曜日が合っていません。 2016年12月1日は木曜日です。 手作業でカレンダーを作れない人には当番表の自動作成は無理かと思います。 回答の添付画像はExcel 2013で作成したものですが未完成です。 カレンダー部分は年月を入力すれば自動作成できるようにしてあります。 土曜日と日曜日は固定なので手動で指定色に塗りつぶしました。 祝日は該当年の一覧表が無いと条件付き書式で自動的に塗りつぶすことができません。 先ず、祝日一覧表の取得とカレンダーへの色塗りから学習されたら如何でしょう? カレンダーの作成は次のようにしました。 添付画像のA1には2016と入力し、B1には12と入力しました。 年と月の文字は表示形式で"0年"や"0月"のようにしました。 B3セルに次の数式を設定し、右へH3セルまでコピペしました。 =IF(TEXT(DATE($A$1,$B$1,1),"aaa")=B2,DATE($A$1,$B$1,1),IF(A3<>"",IF(A3<EOMONTH(DATE($A$1,$B$1,1),0),A3+1,""),IF(AND(COLUMN()=2,ISNUMBER($H2)),IF($H2<EOMONTH(DATE($A$1,$B$1,1),0),$H2+1,""),""))) B3:H3をコピーでクリップボードへ記憶させ、B5、B7、B9、B11、B13へ1行飛びで貼り付けました。 当番の自動割付は不完全な仮のものなので数式を提示しません。 参考になれば幸いです。
- aokii
- ベストアンサー率23% (5210/22063)
A1に2016/1/1と入れ下にドラッグコピーしてA列に年間365日の日にちを作り、曜日を表示して、平日のみをB列、土曜のみをD列、日祝のみをF列にコピーして、C列E列G列にA~Gの担当者7名を下にドラッグコピーして担当リストを作り、H列にB、D、F列のデータを貼付け、I列にC、E、G列のデータを貼付けてH、I列のデータを年間のデータベースにしてはいかがでしょう。
- mt2015
- ベストアンサー率49% (258/524)
補足願います。 土曜日と、日曜祝日で担当者のサイクルが異なりますが、土曜日が祝日の場合はどうします?
お礼
ありがとうござます。 関数と条件付き書式で対応できました。 アイディアありがとうございます。