- ベストアンサー
エクセル勤務表シフトの自動生成の作り方
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
お示しのデータがA1セルに4、C1セルから横に1,2,3・・と日付が、A3セルに田中、A4セルに鈴木、A5セルに和田が入力されて表示のようなシフトになっているとします。仮に4月におけるこのシフトの状態が基本となってその後の月のシフトが作られていくものとします。 初めに参考のために次の式をC8セルに入力して右横方向にオートフィルドラッグします。 =MOD(DATE(YEAR(TODAY()),$A$1,C$1)-DATE(2011,4,1),6) このデータが各人のシフトの式を考えるうえで参考になります。 田中のケースではC3セルには次の式を入力して右横方向にオートフィルドラッグします。 =IF(C$1="","",IF(OR(MOD(DATE(YEAR(TODAY()),$A$1,C$1)-DATE(2011,4,1),6)=1,MOD(DATE(YEAR(TODAY()),$A$1,C$1)-DATE(2011,4,1),6)=2),"B",IF(OR(MOD(DATE(YEAR(TODAY()),$A$1,C$1)-DATE(2011,4,1),6)=3,MOD(DATE(YEAR(TODAY()),$A$1,C$1)-DATE(2011,4,1),6)=4),"A",""))) 鈴木のケースではC4セルに次の式を入力して右横方向にオートフィルドラッグします。 =IF(C$1="","",IF(OR(MOD(DATE(YEAR(TODAY()),$A$1,C$1)-DATE(2011,4,1),6)=5,MOD(DATE(YEAR(TODAY()),$A$1,C$1)-DATE(2011,4,1),6)=0),"B",IF(OR(MOD(DATE(YEAR(TODAY()),$A$1,C$1)-DATE(2011,4,1),6)=1,MOD(DATE(YEAR(TODAY()),$A$1,C$1)-DATE(2011,4,1),6)=2),"A",""))) 和田のケースではC5セルに次の式を入力して右横方向にオートフィルドラッグします。 =IF(C$1="","",IF(OR(MOD(DATE(YEAR(TODAY()),$A$1,C$1)-DATE(2011,4,1),6)=3,MOD(DATE(YEAR(TODAY()),$A$1,C$1)-DATE(2011,4,1),6)=4),"B",IF(OR(MOD(DATE(YEAR(TODAY()),$A$1,C$1)-DATE(2011,4,1),6)=5,MOD(DATE(YEAR(TODAY()),$A$1,C$1)-DATE(2011,4,1),6)=0),"A",""))) 他の人のケースでも8行目に示されたMODの値を見ながら条件を設定すればよいでしょう。 これで4月のケースをシフトの元の条件としたときにA1セルに5、や6,7と入力することでその月のシフト表が表示されますね。
その他の回答 (2)
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No2です。####が表示されるのはセルの幅よりも長い数値が入力されている場合や、または、結果画布になるような日付、時刻を計算している場合ですね。 MOD関数のみが使われていますので問題は無いように思われます。こちらが提案したとおりに新しいシートを使って試験してみてください。
お礼
大変ご丁寧にありがとうございました。 もう一度チャレンジしてみます。 失礼致します。
- nattocurry
- ベストアンサー率31% (587/1853)
B,B,A,A, , , という周期の初日の日付を【基準日付】とすると、以下の数式でシフトを求められます。 =CHOOSE(MOD(【当該日付】-【基準日付】,6)+1,"B","B","A","A","","") 田中さんの行が行3で、4月2日が列Dだとすると、 セルD4に =CHOOSE(MOD(DATE(2011,A1,E1)-DATE(2011,A1,$D1),6)+1,"B","B","A","A","","") と入力し、右にコピペすると、4月3日以降のシフトが求められます。 シフト表に書いてない過去の日付を使うと、4月1日に =CHOOSE(MOD(DATE(2011,4,C1)-DATE(2011,3,27),6)+1,"B","B","A","A","","") と書いて、右にコピペすると、すべての日付についてシフトを出せます。 人によって、基準日付が異なると思うので、人によって基準日を変えてください。
お礼
ありがとうございました。
お礼
すみません。 A11セル4、C11セルから横に1.2.3・・・と日付が、A13セルに田中、A14セルに鈴木、A15セルに和田となっています。数式の数字を入れ替えればよいのでしょうか?出来ればご回答宜しくお願いいたします。 そして、大変ありがとうございました。
補足
御回答ありがとうございます。 早速入力致しオートフィルドラッグした所、各セルに ### と出てまいります。 何か設定が悪いのでしょうか? 教えて頂けたら幸いです。 宜しくお願い致します。