• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで複雑なシフト表の作り方)

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

このQ&Aのポイント
  • エクセルで複雑なシフト表を作成する方法を教えてください。シフトの変更なども簡単にできるようにしたいです。
  • エクセルを使用して複雑なシフト表を作成する方法や、シフトの変更が簡単にできるツールについて教えてください。
  • エクセルを使って複雑なシフト表を作る方法や、シフトの変更を簡単に行えるツールについて教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#79209
noname#79209
回答No.5

勤務場所別のシフト表です。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までコピーします。 以上で終了です。

get3
質問者

補足

長々とありがとうございます。 やってみます!!!

その他の回答 (4)

noname#79209
noname#79209
回答No.4

Sheet1:個人別シフト表です。 同じ人が、複数の時間帯、勤務場所があるため、一日内のシフト回数が不定となります。 このため、一般のカレンダーのような、日別の表示は無理です。 そこで、小学生の時間割のような表にせざるを得ませんでした。 イメージは以下のようになります。   A     B    C    D    E    F    G    H 1 織田   日    月    火    水    木    金    土 2  1    尾張  尾張  尾張  尾張  尾張  尾張  尾張 3  2    信濃  信濃  信濃  信濃  信濃  信濃  信濃 4  3    甲斐  甲斐  甲斐  甲斐  甲斐  甲斐  甲斐 5  4    三河  三河  三河  三河  三河  三河  三河 6  5    安芸  安芸  安芸  安芸  安芸  安芸  安芸 7  6    尾張  尾張  尾張  尾張  尾張  尾張  尾張 A1に従業員の名前を入力します。 B1:=Sheet3!$A$2 C1:=B1+1 として、D1~H1へコピーし、B1~H1の表示書式を「aaa」に設定。 A2~A7にシフトの名前を入力しておきます。 B2: =IF(ISNA(MATCH($A$1,OFFSET(Sheet3!$A$1,(COLUMN()-2)*8+ROW(),1,1,7),0)),"",INDEX(Sheet3!$B$2:$H$2,1,MATCH($A$1,OFFSET(Sheet3!$A$1,(COLUMN()-2)*8+ROW(),1,1,7),0))) として、B2~H7までコピー。 でOKでしょう。 次は、勤務先別です。

noname#79209
noname#79209
回答No.3

> 勤務場所が二つある場合や同じ日に2つの時間帯で勤務している場合 基本的に1日当たりの勤務時間帯と勤務場所とのマトリクス表が基本となり、 これを曜日毎に作っておくことになるでしょう。 Sheet3:曜日別、勤務場所別シフト表 A1:=EOMONTH(TODAY(),-1)+1 として表示書式を「yyyy/m」 A2:=$A$1-WEEKDAY($A$1)+ROW()-1 として、表示書式に「aaaa」を設定します。 ※「ROW()-1」の「-1」はデータが2行目から始まっているからで、3行目からなら「ROW()-2」となります。 同じ勤務時間帯に同じ人が入るとマズイので、条件付書式を設定して重複を発見しやすくしておきます。 B3~H8を選択しておき、「書式」-「条件付書式」で「数式が」として 「=SUMPRODUCT(($B3:$H3=B3)*1)>1」として、書式に「パターン」の「色」を指定して「OK」を押します。 これで、ヨコ方向に同じ名前があれば背景に色がつきます。 ここで、A2~H8を選択してコピーし、A10~A16へ貼り付けます。 次にA10の数式を、「=A2+1」に変更します。 あとは、A10~H16を選択してコピーし、 A18~H24、A26~H32、A34~H40、A42~h48、A50~H56へ貼り付けます。   A     B   C   D   E   F   G   H 1 2007/11 2 日曜日 尾張 三河 駿河 甲斐 越後 信濃 安芸 3 1   織田 徳川 今川 武田 上杉 真田 毛利 4 2   今川 武田 上杉 真田 毛利 織田 徳川 5 3   上杉 真田 毛利 織田 徳川 今川 武田 6 4   毛利 織田 徳川 今川 武田 上杉 真田 7 5   徳川 今川 武田 上杉 真田 毛利 織田 8 6   織田 徳川 今川 武田 上杉 真田 毛利 9 10 月曜日 尾張 三河 駿河 甲斐 越後 信濃 安芸 11 1   織田 徳川 今川 武田 上杉 真田 毛利 12 2   今川 武田 上杉 真田 毛利 織田 徳川 13 3   上杉 真田 毛利 織田 徳川 今川 武田 14 4   毛利 織田 徳川 今川 武田 上杉 真田 15 5   徳川 今川 武田 上杉 真田 毛利 織田 16 6   織田 徳川 今川 武田 上杉 真田 毛利 17 というフォーマットです。 とりあえず、Sheet3の分をコメントしておきます。 続きを書きますので、まだ締め切らないで下さいね。

get3
質問者

お礼

長々とご親切にありがとうございました。 仕上がってからお礼しようと思ったのですが、まだしばらくかかりそうなので一旦締め切らせて頂きます。また質問を見かけたらよろしくお願い致します!! 本当に感謝です!!!

noname#79209
noname#79209
回答No.2

Sheet3をマスター用シートとして、 Sheet3: A1:=EOMONTH(TODAY(),-1)+1 として表示書式を「yyyy/m」 B2:=$A$1-WEEKDAY($A$1)+B$1 としてC2~H2へコピー A3~A12を選択し、「勤務時間」と名前をつけておく。 3行目以下は下記のように入力しておく。   A     B   C   D   E   F   G   H 1 2007/11 1   2   3   4   5   6   7 2       日   月   火   水   木   金   土 3 1   織田 徳川 今川 武田 上杉 真田 毛利 4 1   尾張 三河 駿河 甲斐 越後 信濃 安芸 5 2   今川 武田 上杉 真田 毛利 織田 徳川 6 2   駿河 甲斐 越後 信濃 安芸 尾張 三河 7 3   上杉 真田 毛利 織田 徳川 今川 武田 8 3   越後 信濃 安芸 尾張 三河 駿河 甲斐 9 4   毛利 織田 徳川 今川 武田 上杉 真田 10 4   安芸 尾張 三河 駿河 甲斐 越後 信濃 11 5   徳川 今川 武田 上杉 真田 毛利 織田 12 5   三河 駿河 甲斐 越後 信濃 安芸 尾張 Sheet1は、従業員別カレンダーとして、 Sheet1: A1:=Sheet3!$A$1 B1:=Sheet3!B$2 として、表示書式を「aaa」と設定したうえで、C1~H1へコピー。 B2:=B$1 として、表示書式を「d」と設定したうえで、C2~H2へコピー。 B3:=IF(ISNA(MATCH($A$2,Sheet3!B$3:B$12,0)),"",INDEX(Sheet3!B$3:B$12,MATCH($A$2,Sheet3!B$3:B$12,0)+1,1)) とし、C3~H3へコピー。 B4:=IF(B3="","",INDEX(勤務時間,MATCH($A$2,Sheet3!B$3:B$12,0),1)) として、C4~H4へコピー。 B5:=B2+7 として、C5~H5へコピー。 B6~H7:B3~B4の内容をコピー。 B8~H16:B5~H7をブロックごとに、3行分づつコピー。 これで、B2に従業員名を入力すれば、自動的に各日付の下に勤務場所と勤務時間が表示されます。 sheet2は勤務場所別カレンダー sheet2: 基本的にはSheet1と同じ。 3行目: =IF(ISNA(MATCH($A$2,Sheet3!B$3:B$12,0)),"",INDEX(Sheet3!B$3:B$12,MATCH($A$2,Sheet3!B$3:B$12,0)-1,0)) 4行目: =IF(B3="","",INDEX(勤務時間,MATCH($A$2,Sheet3!B$3:B$12,0),1)) 3行目~4行目を、6~7行目、9~10行目、12~13行目、15~16行目へコピーすればOK。 これで、B2に勤務場所を入力すれば、自動的に各日付の下に従業員名と勤務時間が表示されます。 一応、実験済ですがお望みの結果でなければご容赦。。。

get3
質問者

補足

ありがとうございました。 ご教授頂いた内容で自分なりに作り変えてかなり作表が進みました。 ただ、色々考えてみたのですが、勤務場所が二つある場合や同じ日に2つの時間帯で勤務している場合のカレンダーへの反映方法が分かりません。何か方法はございませんでしょうか? よろしくお願い致します。

noname#153814
noname#153814
回答No.1

少し整理させてください。 子供の学校の時間割のようなものでいいのでしょうか。  日  月  火  織田 徳川 豊臣 1尾張 三河 中村  6~ 7~ 8~  豊臣 織田 徳川 2中村 尾張 三河  8~ 6~ 7~ *基本ファイルというと、横軸に曜日、縦軸に数字だけの空白の予定表ですね。 *で、たとえば水曜日に「1」と入力すれば、「徳川、三河、7~」と表示され、「2」と入力すれば「織田、尾張、6~」と表示さればいいのでしょうか。

get3
質問者

補足

ご返答が遅くなってすみません。下記、おっしゃった通りです。 *基本ファイルというと、横軸に曜日、縦軸に数字だけの空白の予定表ですね。 *で、たとえば水曜日に「1」と入力すれば、「徳川、三河、7~」と表示され、「2」と入力すれば「織田、尾張、6~」と表示さればいいのでしょうか。 基本ファイルの週間データが月間のカレンダー2種に反映するという形です。できたら1日だけ時間変更なども何か表に入力したら反映するようにしたいです。 マクロになるのでしょうか?

関連するQ&A

専門家に質問してみよう