- ベストアンサー
エクセルで勤務シフト表の作成。
エクセル表で年間の勤務シフト表を作成しております。 独自で考えて作っていってるんですが、改良したい点がいくつかあり教えて頂きたい点があります。 現在は色んなデータを入れているシートを一つと、1か月ごとのシフト表を12個用意しています。 まず、4月度のシートに『4月度』と入力したら日付と曜日が自動的に入る様にするにはどのような関数が使えますか? 12枚のシートは全て同じ書式なので、日付と曜日を空白にしておいて、自動的に表示したいのです。 付け加えるなら、日曜と祝日にはフォントもしくはセルに色をつけたいのです。 もう1点。社員ごとに労働時間の累計を出していきたいのですが、現在は表に社員番号を入力すれば氏名が表示されるようにしており、例えばA1のセルの個人の数字を来月度もA1のセルの人と合計する式しか入れていません。 これだと各月の表の社員の並びが変わった時、別の社員の数字を合計してしまいます。 社員番号を入れれば各月の労働時間を合計するにはいかがいたしたらよろしいでしょうか? 長文の上、説明不足があるやも知れませんが宜しくご教授下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
___A_B__C__D__AF 1_2009_年__4_月度_ 2_日付_16_17__18_(16) 3_曜日_木_金__土_(土) B2 =DATE($A$1,$C$1,16) 書式:ユーザー定義 d B2:AF3選択[B2→AF3の順に] ・最初の条件付書式:数式が▼ =AND(MONTH(B2)=$C$1+1,DAY(B2)>15) 書式:フォント白 後半の質問は具体的な表を提示して 別スレを立てたほうがいいかもしれません。
その他の回答 (2)
- CMLT
- ベストアンサー率40% (143/357)
>4月度のシートに『4月度』と入力したら日付と曜日が自動的に入る様にするにはどのような関数が使えますか? 日付: Date(年,月,日)の月の部分でセル指定で引っ張って来るのが良いでしょう。データとしてはシリアル値(年月日)で持っておき、書式をdにして日付のみ表示させる。 曜日: =weekday(日付)として、書式設定をaaaとしましょう。=日付でも曜日表示は出来るのですが、weekday関数で1~7の数値にしておいた方が、土曜や日曜の条件付き書式に1~7の数値で扱えますし、日付と違う数値で色々と役に立つこともあります。 >社員番号を入れれば各月の労働時間を合計するにはいかがいたしたらよろしいでしょうか? どのようなフォーマットかによって式、関数は変わってくると思います。 使えそうな関数の一部としては、vlookup、hlookup、index、offset、match、sumproduct、…などなど。
- n_na_tto
- ベストアンサー率70% (75/107)
___A__B__C__D_..._AF_ 1_2009_年__4_月_...__ 2_日付__1__2__3_..._(1) 3_曜日_水_木_金_...(金) ・B2 =DATE($A$1,$C$1,1) 書式:ユーザー定義 d ・C2 =B2+1 書式:ユーザー定義 d 右方向・→AF列まで ・B3 =B2 書式:ユーザー定義 aaa 右方向・→AF列まで ※B2とC2を別の式にしたくなければ B2 =DATE($A$1,$C$1,COLUMN(A:A)) 右方向・→AF列まで B2:AF3選択[B2→AF3の順に] ・条件付書式:数式が▼ =MONTH(B2)<>$C$1 書式:フォント白 ・条件付書式[追加]:数式が▼ =WEEKDAY(B2,2)=7 書式:フォント赤 ・条件付書式[追加]:数式が▼ =COUNTIF(祝日リスト,B2) 書式:フォント赤 ※3番目の条件付書式は祝日リストをあらかじめ作っておく必要があるので、今回は無視してください。
補足
早速の回答ありがとうございます。 =DATE("2009",$C$1,16)等で上手くいきました。 しかし、当社が16日から15日を1か月としているため、各月の表は31日分を作っておりまして、30日しかない月は『31日』のセルは空白にて対処しておりました。 このままだと30日までしかない月は16日から16日まで表示してしまいます。 それに対する方法はありますか?