月を変えると曜日が変わる様にしているのですが、
同じく月を変えると、シフトが変わる様にしたいのですが
解かりません。
ご解答いただければ大変有り難いです。
シフトそれぞれ、BBAAとなっています。
宜しくお願いいたします。

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

このQ&Aに関連する最新のQ&A

A 回答 (7件)

回答No2,3,4です。


日曜日のセルを赤色にするのでしたらC9セルからAG9セルの範囲を選択してから「条件付き書式」の設定で「数式を・・」を選択し、数式の窓には次の式を入力します。その後に同じ画面の「書式」をクリックし、「塗りつぶし」のタブから赤色を指定してOKします。

=WEEKDAY(DATE($A5,$A8,C8))=1

曜日を調べるにはWEEKDAY関数を使います。1が日で、2が月、3が火・・のようになります。
    • good
    • 0
この回答へのお礼

シフト表は全て完成致しました。

他の回答者さんからは、質問の仕方が悪いと指摘されましたが、
訳の解からない質問に対し度々ご丁寧にお答え頂いて、心から感謝
致します。

本当に有難う御座いました。

☆KURUMITO様にいつも平和があり、
 実り多き素敵な毎日でありますように。

失礼致します。

お礼日時:2011/04/14 13:25

C9セルからAG9セルを範囲として選択したのちに条件付き書式の設定で、数式の窓には次の式でもよいですね。



=C9="日"
    • good
    • 0

 将来、シフトの繰り返しが6日周期ではなくなる事も考えて、御質問の表とは僅かに形式を変更して、適当なセル(例えばE5セル)にシフトの周期を



6

と入力する事にします。
 又、以下の方法は、途中で名前の順番が変わったり、辞める人間がいたり、新人が入って来た場合でも対応しています。

 まず、F5セルに「日周期」と入力して下さい。
 次に、A8:A9、A10:B10、A11:B11、A12:B12、A13:B13、A14:B14を、それぞれ結合して下さい。
 次に、A8セルの書式設定を[ユーザー定義]の

0"月"

として下さい。
 次に、C8~AG8セルの書式設定を[ユーザー定義]の

d

として下さい。
 次に、A8~A13セルに各勤務者の名前を、A14セルに「備考」と入力して下さい。
 次に、C8セルに次の数式を入力して下さい。

=IF(ISNUMBER(($A$5+($A$8>$A8)&"/"&$A8&"/"&COLUMNS($C:C))+0),DATE($A$5+($A$8>$A8),$A8,COLUMNS($C:C)),"")

 次に、C9セルに次の数式を入力して下さい。

=TEXT(C8,"aaa")

 次に、C10セルに次の数式を入力して下さい。

=IF(ISNUMBER($E$5),IF(AND($A10<>"",$E$5>1,INT($E$5)=$E$5,ISNUMBER(($A$5+(VLOOKUP(9^9,$A$8:$A10,1)<$A$8)&"/"&VLOOKUP(9^9,$A$8:$A10,1)&"/"&COLUMNS($C:C))+0),OR(COUNTIF($A$8:$A10,$A10)>1,COUNTIF($A10:B10,"><")>1)),VLOOKUP($A10,INDEX($A:$A,MATCH(MONTH(VLOOKUP(9^9,C$8:C9,1)-$E$5),$A:$A,0)):$AG10,DAY(VLOOKUP(9^9,C$8:C9,1)-$E$5)+COLUMNS($A:$B),0)&"",""),"")

 次に、C10セルをコピーして、C11~C13の範囲に貼り付けて下さい。
 次に、C8~C14の範囲をコピーして、D8~AG14の範囲に貼り付けて下さい。
 次に、A8~AG14の範囲に枠線の設定をして下さい。
 次に、AE8セルにカーソルを合わせて、マウスの左ボタンを押しっ放しにし、そのままカーソルをAG14セルまで移動させてから、ボタンを放して下さい。
 その状態で、次の条件付き書式を設定して下さい。

数式

=ISERROR(($A$5+(VLOOKUP(9^9,$A$8:$A8,1)<$A$8)&"/"&VLOOKUP(9^9,$A$8:$A8,1)&"/"&COLUMNS($C:AE))+0)

書式:[罫線]タグにおいて、[なし]ボタンをクリック


 次に、A8~AG14の範囲をコピーして、A17~AG23の範囲に貼り付けて下さい。
 次に、A17セルに次の数式を入力して下さい。

=IF(ISNUMBER(("1904/"&VLOOKUP(9^9,$A$8:$A16,1)&"/1")+0),MONTH(DATE(1904,VLOOKUP(9^9,$A$8:$A16,1)+1,1)),"")

 次に、A17~AG25の範囲をコピーして、同じ列の26行目以下に、10回貼り付けて下さい。


 次に、E5セルに

6

と入力して下さい。
 次に、A5セルに

2011

と入力して下さい。
 次に、A8セルに

4

と入力して下さい。
 次に、C10~H13の数式を一旦消去し、4月1日~4月6日の、各勤務者のシフトをキーボード入力して下さい。
 すると、一年間のシフトが表示されます。

 なお、途中で新人が入る場合には、勤務者の名前とシフトが表示されている行の中から適当な行をコピーして、新人が初めて入る月以降の表中に、[コピーしたセルの挿入]を使用して挿入し、名前を書き換えてた上で、その行における、新人が初めてシフトに入る6日間の部分の数式を削除し、替わりにその6日間のシフトをキーボード入力して下さい。
 例えば、この回答の添付画像では、6月15日から佐々木さんがシフトに加わるため、6月からの表において、月の行数が1行増えるとともに、名前を「あいうえお順」に整理し直しています。
「勤務シフト表の作り方」の回答画像5
    • good
    • 0

C9セルへの入力の式が抜けていました。

次のような式になります。

=IF(C8="","",TEXT(DATE($A$5,$A$8,COLUMN(A1)),"aaa"))
    • good
    • 0

回答No2です。



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

A8セルが4の時はC25セルは0ですね。C25には上の式を入力してからC25セルを選択してセルの右下隅にカーソルを移しますとポインタの形が+になりますので左ボタンを押しながら右横方向にドラッグするのですよ。もちろん式からわかるようにA5セルに西暦年、A8には月がC8から右横のセルには日付が入力されていることが必要です。

ついでに示しますが、C8には次の式を入力して右横方向にオートフィルドラッグします。

=IF(MONTH(DATE($A$5,$A$8,COLUMN(A1)))<>$A$8,"",TEXT(DATE($A$5,$A$8,COLUMN(A1)),"d"))

これで指定の月の末日までが表示されます。上の式では7行目の式は必要としません。
C9セルには次の式を入力して右横方向にオートフィルドラッグします。
    • good
    • 0

別のところでお答えしていますが次のようです。



前回のご質問にお答えした内容を十分にご理解できなかったことは残念に思います。
お示しの表のとおりのセル番号でお答えします。
田中、鈴木、和田などのシフトを考えるにあたって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","")))


投稿日時 - 2011-04-13 07:44:27

.

この回答への補足

何度もご回答大変ありがとうございました。

いちから作り直して、ご回答頂いた通り入力して出来上がりました。

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

ついでと言ってはなんなんですが、日曜日だけ色をつけたいのですが
各サイトを探してやってみても、これまた上手くいきません。
お時間がある時にでも、ご回答頂けると幸いです。

すみません。

補足日時:2011/04/13 17:26
    • good
    • 0

それだけの情報では無理。



ですが、曜日なら次の関数式を入力すれば可能です。
 =TEXT(DATE(年,月,日),"aaa")
年、月、日にはそれぞれ対応する数値を参照させる。
 A1セルに年
 B1セルに月
 B2セルから横方向に日
を示す数値が入力されているなら
 =TEXT(DATE(A1,B1,B2),"aaa")
で、数値が示す日付の曜日が漢字一文字で表示されます。

 ※ TEXT関数と、DATE関数の詳細は Excel のヘルプを参照してください。詳しく書いてありますよ。

残念ですが、あとは職場で Excel の扱いに慣れている人に相談しましょう。
でないと文面を見る限りここでの解決は無理だろうと思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/04/13 20:25

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルで複雑なシフト表の作り方

こんばんは、エクセルで少し複雑なシフト表を作成したいです。
作り方(もしくはwebページの紹介)、フリーソフトがありましたら教えて頂きたいです。
・以下のような1週間の基本ファイルがあります。
横軸に日~土
縦軸に1・2・3で分けた時間のパターンがあり、交わるところに勤務場所別に分けた従業員の名前が記入してあります。
・従業員別のシフトカレンダー(普通のカレンダーに勤務場所と時間が書いてあります。)勤務場所別カレンダー(普通のカレンダーに従業員名と時間が書いてあります。)
基本ファイルから従業員及び勤務場所別のカレンダーがうまく反映するように作成したいです。
文章では説明が難しいのですが、なるべく簡単にシフトの変更などもボタンでできるようにしたいです。
そういった事に詳しいサイトやフリーソフトがありましたら教えて下さい。
よろしくお願いします!!!!

Aベストアンサー

勤務場所別のシフト表です。Sheet2にします。
フォーマットはSheet2と全く同じです。
従って、とりあえずSheet1の全てをSheet2へコピーします。

A1に勤務場所を入力します。
B1~H7までを削除します。
B2に、
=INDEX(Sheet3!$B$2:$H$57,+(COLUMN()-2)*8+ROW(),MATCH($A$1,Sheet3!$B$2:$H$2,0))
として、これをB2からH2までコピーします。
以上で終了です。

Qエクセル 月別シフト表を曜日別固定シフト表へ反映させたい

エクセル 月別シフト表を曜日別固定シフト表へ反映させたいのですが。
月別、曜日別固定シフト表それぞれ何月(図:8月)入力すると自動で曜日、日付がそれぞれ自動で変更するのですが上手くいきません。異なる勤務表に日付が同じ行を見つけ、そのセルに表示させたいんですが。
index matchも使用したのですが、上手くいきません。

月別シフト表をメインに曜日別固定シフト表へ月変更してもそれに合わせて反映させることできないでしょうか?

Aベストアンサー

画像が小さくてよくわかりませんが、根本的な質問です
どちらが「月別シフト表」で、どちらが「曜日別固定シフト表」でしょうか?

>日付がそれぞれ自動で変更するのですが上手くいきません。
日付はシリアル値でしょうか?単純な数値でしょうか?
また、どのような方法で変更させているのでしょうか?

>index matchも使用したのですが、上手くいきません。
うまくいかなかった数式も提示してください。
原因が数式にあるのか、データにあるのか、入力さえできなかったのか、失敗からある程度質問の意図も読み取れる可能性があります。


人気Q&Aランキング