- 締切済み
アルバイトのシフト表作成及びガントチャート作成
大変すみませんが、現在、コンビニのアルバイトのシフト表をExcleで作成 しようとしておりますが、うまくいきません。 どなたか、以下のような形態で作成できる方式などをお教えいただけないでしょうか? シート1には (1)縦に氏名、横軸に、1ヶ月あたりの日にち(ただ、この日にちはA1セルに月を入力 したら、自動でその月の日にちになるようにしたい) (2)このシートにアルバイト者単位で、希望する時間帯を入力させます。 シート2には、シート1で入力した、ある日にちを選択すると、その日だけ入っている アルバイト者名および勤務時間帯を、ガントチャート形式で表示できるようにしたい。 意図は、その日のシフト人数が時間帯別で見たときに、足りえているかを把握したいため です。 このようなシフト表を教えていただけないでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- mr_2kasa
- ベストアンサー率0% (0/0)
エクセルで勤務シフトを作成するのであれば、こちらはどうですか? http://excel-template.jp/article/353095524.html
- KURUMITO
- ベストアンサー率42% (1835/4283)
初めに月や日にちの入力は2012/8/27のように入力して「セルの書式設定」から「表示形式」の「ユーザー定義」で好みの日付表示することがよいでしょう。 そこで表の作成ですがシート1は次のようにします。 A1セルには今年の8月の表でしたら2012/8/1と入力し、セルの表示形式で ggge年m月 のようにします。 B1セルには次の式を入力して右横方向にBKセルまでドラッグコピーします。 =IF(OR(MOD(COLUMN(A1),2)=0,MONTH(DATE(YEAR($A$1),MONTH($A$1),ROUNDUP(COLUMN(A1)/2,0)))<>MONTH($A$1)),"",DATE(YEAR($A$1),MONTH($A$1),ROUNDUP(COLUMN(A1)/2,0))) 1日当たり2列を使っています。それはアルバイトの開始時間を前列に終了時間を後列に入力できるようにするためです。 B1セルからBK1セルまでを選択してセルの表示形式で d日(aaa) のようにします。これでB1セルには1日(水)のように表示されます。なお、式では月の末日までが表示されます。 次にA2セルには氏名の文字を入力します。 B2セルには次の式を入力してBK2セルまで横にオートフィルドラッグします。 =IF(AND(A$1="",B$1=""),"",IF(MOD(COLUMN(A1)-1,2)+1=1,"開始","終了")) これでその日のアルバイトの開始時刻と終了時刻を入力する項目名が表示されます。 A3セルから下方にはアルバイト者の氏名を入力し該当する非の開始時刻と終了時刻を9:00のように入力します。入力は30分単位で行います。 シート1に入力されたデータをもとにガントチャートを作成するためにシート2では次のようにします。 表示させたい日付をA1セルに例えば2012/8/27のように入力します。日だけの表示にする場合には表示形式で d日(aaa) のようにしてもよいでしょう。 B1セルから横方向には30分ごとの時刻が並ぶようにします。例えばB1セルに9:00と入力しC1セルには9:30と入力します。B1とC1セルを選択してから横方向にドラッグすれば30分ごとの時刻が表示されますね。 そこでA2セルから下方にはA1セルで指定された日付でのアルバイト者の氏名を表示させるわけですが、そのための式は複雑になりますのでシート1のBLセルには作業列を作って対応することにします。 シート1のBL3セルには次の式を入力しえ下方にドラッグコピーします。 =IF(A3="","",IF(INDEX(B:BK,ROW(),MATCH(Sheet2!$A$1,B$1:BK$1,0))="","",MAX(BL$2:BL2)+1)) これでシート2のA1セルで指定された日付における該当者に上から番号が付けられます。 この番号をもとにしてシート2での作業を進めます。 シート2のA2セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>MAX(Sheet1!BL:BL),"",INDEX(Sheet1!A:A,MATCH(ROW(A1),Sheet1!BL:BL,0))) 次にガントチャートを作るための作業ですがB2セルから1行目で時刻の入力された最終列から下方の適当なセルまでを範囲としてして選択します。 その上で「ホーム」タブの「条件付き書式」をクリックして「新しいルール」を選択します。 「数式を使用して…」にチェックをしてから下の窓には次の式を入力します。 =AND(B$1+0.001>=INDEX(Sheet1!$B:$BK,MATCH(ROW(A1),Sheet1!$BL:$BL,0),MATCH($A$1,Sheet1!$B$1:$BK$1,0)),B$1+0.001<INDEX(Sheet1!$B:$BK,MATCH(ROW(A1),Sheet1!$BL:$BL,0),MATCH($A$1,Sheet1!$B$1:$BK$1,0)+1)) かなり長い式ですのでどこかのセルに式を入力してからそれをコピーして条件付き書式の窓に貼り付けをすればよいでしょう。 その後に「書式」をクリックして「塗りつぶし」のタブで赤色などを指定してOKします。 これである時間帯における重なりなどを見ることができますね。
- ice rub(@icerub)
- ベストアンサー率23% (604/2626)
これはどうです? かなり近いと思いますが その名も「ふりーシフト君」 http://mt-soft.sakura.ne.jp/web_dl/free_shift/