アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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までコピーします。
以上で終了です。

この回答への補足

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

補足日時:2007/11/21 01:55
    • good
    • 0

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でしょう。
次は、勤務先別です。
    • good
    • 2

> 勤務場所が二つある場合や同じ日に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   織田 徳川 今川 武田 上杉 真田 毛利

10 月曜日 尾張 三河 駿河 甲斐 越後 信濃 安芸
11 1   織田 徳川 今川 武田 上杉 真田 毛利
12 2   今川 武田 上杉 真田 毛利 織田 徳川
13 3   上杉 真田 毛利 織田 徳川 今川 武田
14 4   毛利 織田 徳川 今川 武田 上杉 真田
15 5   徳川 今川 武田 上杉 真田 毛利 織田
16 6   織田 徳川 今川 武田 上杉 真田 毛利
17
というフォーマットです。

とりあえず、Sheet3の分をコメントしておきます。
続きを書きますので、まだ締め切らないで下さいね。
    • good
    • 1
この回答へのお礼

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

お礼日時:2007/12/10 23:17

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つの時間帯で勤務している場合のカレンダーへの反映方法が分かりません。何か方法はございませんでしょうか?
よろしくお願い致します。

補足日時:2007/11/20 16:16
    • good
    • 0

少し整理させてください。


子供の学校の時間割のようなものでいいのでしょうか。
 日  月  火
 織田 徳川 豊臣
1尾張 三河 中村
 6~ 7~ 8~

 豊臣 織田 徳川
2中村 尾張 三河
 8~ 6~ 7~

*基本ファイルというと、横軸に曜日、縦軸に数字だけの空白の予定表ですね。
*で、たとえば水曜日に「1」と入力すれば、「徳川、三河、7~」と表示され、「2」と入力すれば「織田、尾張、6~」と表示さればいいのでしょうか。

この回答への補足

ご返答が遅くなってすみません。下記、おっしゃった通りです。

*基本ファイルというと、横軸に曜日、縦軸に数字だけの空白の予定表ですね。
*で、たとえば水曜日に「1」と入力すれば、「徳川、三河、7~」と表示され、「2」と入力すれば「織田、尾張、6~」と表示さればいいのでしょうか。

基本ファイルの週間データが月間のカレンダー2種に反映するという形です。できたら1日だけ時間変更なども何か表に入力したら反映するようにしたいです。
マクロになるのでしょうか?

補足日時:2007/11/13 21:52
    • good
    • 0

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