プロが教えるわが家の防犯対策術!

月を変えると曜日が変わる様にしているのですが、
同じく月を変えると、シフトが変わる様にしたいのですが
解かりません。

ご解答いただければ大変有り難いです。
シフトそれぞれ、BBAAとなっています。

宜しくお願いいたします。

「勤務シフト表」の質問画像

A 回答 (2件)

こんばんは



>月を変えると曜日が変わる様にしているのですが、
まず、C7に
=DATE($A$5,$A8,C$7)
とし、横に31日分オートフィル
次に「表示形式」をユーザー定義「aaa」でできます。


>同じく月を変えると、シフトが変わる様にしたいのですが
補足要求です
シフトは、
BBAA休休
の様に6日周期でずっと繰り返すでOKでしょうか?
そうであれば、シリアル値とMODあたりをうまく使えばできそうな気がします。
具体的な方法については、ちょっと考えてみます。

また、お使いの表計算ソフトとバージョン(Excel2003 など)も教えてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/04/13 17:29

前回のご質問にお答えした内容を十分にご理解できなかったことは残念に思います。


お示しの表のとおりのセル番号でお答えします。
田中、鈴木、和田などのシフトを考えるにあたってMOD関数を使うことが重要でそれをまず理解することです。
そのためにC25セルには次の式を入力して右横方向にオートフィルドラッグしてみてください。この操作は理解をしやすくするために行うもので実際には入力して表示させる必要もありません。

=MOD(DATE($A$5,$A$8,C$8)-DATE(2011,4,1),6)

ここではもちろん表の上での日付は既に入力されていることが必要です。また、シフト表の基準となるのはこの場合には2011年4月のシフト表を基としています。2011年4月1日からカレンダーの日付を引いた値を6で割った時の余りの数が表示されます。0から5までの数が繰り返して表示されますね。この関係は月が変わっても引き継がれるものです。
そこで田中の場合にBがあるのはMODの値が1と2であること、また、Aがあるのは3と4の場合であることがわかります。鈴木の場合も和田の場合も同様にMODの値との関係を把握することが必要です。

そこで答えとなる式ですが、C10セルには次の式を入力して右横方向にオートフィルドラッグします。

=IF(C$8="","",IF(OR(MOD(DATE($A$5,$A$8,C$8)-DATE(2011,4,1),6)=1,MOD(DATE($A$5,$A$8,C$8)-DATE(2011,4,1),6)=2),"B",IF(OR(MOD(DATE($A$5,$A$8,C$8)-DATE(2011,4,1),6)=3,MOD(DATE($A$5,$A$8,C$8)-DATE(2011,4,1),6)=4),"A","")))

C11セルには次の式を入力して右横方向にオートフィルドラッグします。

=IF(C$8="","",IF(OR(MOD(DATE($A$5,$A$8,C$8)-DATE(2011,4,1),6)=5,MOD(DATE($A$5,$A$8,C$8)-DATE(2011,4,1),6)=0),"B",IF(OR(MOD(DATE($A$5,$A$8,C$8)-DATE(2011,4,1),6)=1,MOD(DATE($A$5,$A$8,C$8)-DATE(2011,4,1),6)=2),"A","")))

C12セルには次の式を入力して右横方向にオートフィルドラッグします。

=IF(C$8="","",IF(OR(MOD(DATE($A$5,$A$8,C$8)-DATE(2011,4,1),6)=3,MOD(DATE($A$5,$A$8,C$8)-DATE(2011,4,1),6)=4),"B",IF(OR(MOD(DATE($A$5,$A$8,C$8)-DATE(2011,4,1),6)=5,MOD(DATE($A$5,$A$8,C$8)-DATE(2011,4,1),6)=0),"A","")))

C13セルには和田と井上は同じパターンですから上の式と同じになりますね。

別の月でも同じような式を入力すればよいでしょう。例えばC20セルには次の式を入力します。

=IF(C$8="","",IF(OR(MOD(DATE($A$5,$A$18,C$18)-DATE(2011,4,1),6)=1,MOD(DATE($A$5,$A$18,C$18)-DATE(2011,4,1),6)=2),"B",IF(OR(MOD(DATE($A$5,$A$18,C$18)-DATE(2011,4,1),6)=3,MOD(DATE($A$5,$A$18,C$18)-DATE(2011,4,1),6)=4),"A","")))

この回答への補足

度々恐れ入ります。
前回ご回答頂いた通りにA1セルからの要領でから作ったら、シフト変更は上手くいったのですが、もともとある(今回添付画像)勤務表に数式を入力するとシフトが表示されなくなります。(A5セルに2011と入力すると)
もとの勤務表にある数式と、お答え頂いた数式との関連で表示されないのかと思い、お答え頂いた数式の中の数字を入れ替えしたりしてみましたが出来ませんでした。

今回もご解答頂き大変申し訳ないです。
ありがとうございます。

補足日時:2011/04/13 08:30
    • good
    • 0
この回答へのお礼

お礼入力の所から失礼いたします。

ご回答頂いた様に初めに =MOD(DATE($A$5,$A$8,C$8)-DATE(2011,4,1),6)と
入力してオートフィルドラッグしたら全て0表示になります。
お答え頂いた通り012345と表示されません。
この時点でどこか不具合なのでしょうか?

各セルの数式の表示は

C7セルの所では、=DATE(A5,A8,1)

C8セルの所では =IF(MONTH(C7)>$A$8,"",C7)

C9セルの所では =IF(C8="","",CHOOSE(WEEKDAY(C8,1),"日","月","火","水","木","金","土"))

と、それぞれ数式が表示されます。

お時間がある時にでもご解答頂けると幸いです。

宜しくお願い致します。

お礼日時:2011/04/13 09:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!