こんばんは、エクセルで少し複雑なシフト表を作成したいです。
作り方(もしくはwebページの紹介)、フリーソフトがありましたら教えて頂きたいです。
・以下のような1週間の基本ファイルがあります。
横軸に日~土
縦軸に1・2・3で分けた時間のパターンがあり、交わるところに勤務場所別に分けた従業員の名前が記入してあります。
・従業員別のシフトカレンダー(普通のカレンダーに勤務場所と時間が書いてあります。)勤務場所別カレンダー(普通のカレンダーに従業員名と時間が書いてあります。)
基本ファイルから従業員及び勤務場所別のカレンダーがうまく反映するように作成したいです。
文章では説明が難しいのですが、なるべく簡単にシフトの変更などもボタンでできるようにしたいです。
そういった事に詳しいサイトやフリーソフトがありましたら教えて下さい。
よろしくお願いします!!!!
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までコピーします。
以上で終了です。
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でしょう。
次は、勤務先別です。
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の分をコメントしておきます。
続きを書きますので、まだ締め切らないで下さいね。
長々とご親切にありがとうございました。
仕上がってからお礼しようと思ったのですが、まだしばらくかかりそうなので一旦締め切らせて頂きます。また質問を見かけたらよろしくお願い致します!!
本当に感謝です!!!
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に勤務場所を入力すれば、自動的に各日付の下に従業員名と勤務時間が表示されます。
一応、実験済ですがお望みの結果でなければご容赦。。。
この回答への補足
ありがとうございました。
ご教授頂いた内容で自分なりに作り変えてかなり作表が進みました。
ただ、色々考えてみたのですが、勤務場所が二つある場合や同じ日に2つの時間帯で勤務している場合のカレンダーへの反映方法が分かりません。何か方法はございませんでしょうか?
よろしくお願い致します。
No.1
- 回答日時:
少し整理させてください。
子供の学校の時間割のようなものでいいのでしょうか。
日 月 火
織田 徳川 豊臣
1尾張 三河 中村
6~ 7~ 8~
豊臣 織田 徳川
2中村 尾張 三河
8~ 6~ 7~
*基本ファイルというと、横軸に曜日、縦軸に数字だけの空白の予定表ですね。
*で、たとえば水曜日に「1」と入力すれば、「徳川、三河、7~」と表示され、「2」と入力すれば「織田、尾張、6~」と表示さればいいのでしょうか。
この回答への補足
ご返答が遅くなってすみません。下記、おっしゃった通りです。
*基本ファイルというと、横軸に曜日、縦軸に数字だけの空白の予定表ですね。
*で、たとえば水曜日に「1」と入力すれば、「徳川、三河、7~」と表示され、「2」と入力すれば「織田、尾張、6~」と表示さればいいのでしょうか。
基本ファイルの週間データが月間のカレンダー2種に反映するという形です。できたら1日だけ時間変更なども何か表に入力したら反映するようにしたいです。
マクロになるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
今まで文字化けなく開けていたc...
-
スプレッドシートで指定された...
-
ExcelでASCを使って全角を半角...
-
マクロの処理が遅くなった
-
Excel関数について教えてくださ...
-
作成した数式を値として表示し...
-
エクセルの質問です。 F列からL...
-
エクセルでファイルの最終更新...
-
EXCELの散布図で日付が1900年に...
-
【マクロ】VLOOKUPにて参照元に...
-
エクセルのセル内に分数などの...
-
Excelの警告について
-
Microsoft 365Excelの見開きペ...
-
Excel関数について教えてくださ...
-
シートの情報を別のシートへま...
-
Excelマクロで空白セルを詰めて...
-
【マクロ】フォルダ内にあるPDF...
-
index関数の説明をお願いします。
-
重複しない値を取り出したい
-
エクセルの数式バーのフォント...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
Excelで数値を時間数に変換する...
-
エクセルの数式バーのフォント...
-
エクセルで数字の組み合わせを...
-
エクセルを使用して、円周率を...
-
Excelで特定の文字列が含まれて...
-
Excel 対象のセルに入力が無い...
-
任意の値が存在する行に名前を...
-
エクセルでファイルの最終更新...
-
index関数の説明をお願いします。
-
条件付き書式でやりたいのですが
-
重複しない値を取り出したい
-
【ExcelVBA】UTF-8(BOM無)でC...
-
【マクロ】マクロが割当てされ...
-
エクセル IF計算式?でしょうか?
-
エクセルで曜日を入れたい
-
表中の指定した条件の文字列を...
-
【Excel】版が同じ事を示す番号...
-
EXCELの散布図で日付が1900年に...
-
Excelについて。Excelに縦1列に...
おすすめ情報