• ベストアンサー

Excelで作る出勤管理表/カレンダー

はじめてこちらで質問させて頂きますsansian3と申します、 どうぞ宜しくお願い致します。 私は現在、150人規模の会社で総務人事を担当しており、給与計算をしています。 今までのペーパーによるやり取りに限界を感じ、Excel2003を利用して 従業員の出勤管理を行いたいと思っております。 具体的には、タイムカードを無くす事が主な目的なのですが、 私の会社は営業が中心で、正社員とパートで定休日がバラバラ、 そして年間休日制(合計92日)でカレンダーとの連動を取るのがとても難しい会社です。 休日パターンにつきましては、 Aパターン…水曜定休・第1.3火曜隔週 Bパターン…水曜定休・第2.4火曜隔週 Cパターン…日曜定休・第1.3土曜隔週 Dパターン…日曜定休・第2.4土曜隔週 Eパターン…月曜定休・第1.3火曜隔週 ...以下、Sまで全19パターン。 カレンダー年度は4月開始~3月終わり、 出勤タイムカードの締め日は、毎月16日開始~15日締め。 GW・夏期休暇・年末年始連続休暇有り、 毎年パターン毎の休日割り振りは、 上記の19パターンを基準として作成しています。 尚、セルに社員番号を入れると、Excelの社員マスターからVLOOKUP関数で 氏名・所属・休日パターンが出てくるようにはなっています。 このとっても問題だらけの状況下で私が作成したいExcelの出金管理なのですが… 1.A4縦、列に項目(日にち・曜日・残業時間・有休等勤怠) 行に日付・曜日(4/16水・4/17木・4/18金...) 2.処理年月を入力すると、日付と曜日が自動的に変わる 3.社員番号を入れると、その社員の休日パターンの定休日(年間休日日)行が 赤く塗りつぶされる 上記の作成したExcelデータをサーバーにアップして、 従業員150人がダウンロードして各々が処理月と社員番号を打ち 印刷する流れを考えております。 以上です、私の知識不足でどうしても解決が出来ません、 ご教授宜しくお願い致します!

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

  • ベストアンサー
  • bdr
  • ベストアンサー率43% (35/80)
回答No.2

「各自印刷をして、手書をする」という運用を前提にしてアドバイスさせていただきます > 1.A4縦、列に項目(日にち・曜日・残業時間・有休等勤怠)行に日付・曜日(4/16水・4/17木・4/18金...) 列は問題なくつくれますよね 行は日付と曜日なので、 案1・・・A列に日付、B列に数式「=text(A1,"aaa")」を入れる 案2・・・A列に日付、A列のセルの書式設定-表示形式をユーザー設定で「m/d aaa」に変更する > 2.処理年月を入力すると、日付と曜日が自動的に変わる 処理年月は、締日の年月でしょうか?開始の年月でしょうか? 仮に締日の年月を前提に 年のセルと月のセルを別にしたほうがわかりやすいと思います 開始日のセルに「=date(年のセル,月のセル-1,15) 開始日以降のセルは、「=上のセル+1」で31行作成します 29行目、30行目、31行目のセルに条件付書式を設定します 29行目:数式が=(DAY(29行目のセル)>15)・・・フォント:白、塗潰し:白 30行目:数式が=(DAY(30行目のセル)>15)・・・フォント:白、塗潰し:白 31行目:数式が=(DAY(31行目のセル)>15)・・・フォント:白、塗潰し:白 > 3.社員番号を入れると、その社員の休日パターンの定休日(年間休日日)行が赤く塗りつぶされる 別のシート(仮称:社員番号一覧)に社員番号と休日パターンの表を作成する(休日はパターンはA,bではなく、1,2の数字にしておく。つまりA->1、B->2・・・として登録しておく) 更に別のシート(仮称:カレンダー)に行は日付(1年分)、列には休日パターンの表を作成し、休日パターンごとに休日の日に1を設定しておく 社員番号を入力した際に、vlookupを使用して「社員番号一覧」から休日パターンを取得するようにする 日付の1行目~28行目まで条件付書式の設定 数式が「=(vlookup(日付のセル,カレンダーの範囲,取得した休日パターン+1,false)=1)」 を設定する 日付の29行目以降は、2.で設定した条件付書式に追加で 数式が「=(vlookup(日付のセル,カレンダーの範囲,取得した休日パターン+1,false)=1)」 おおまかにこんな感じでいいのではないでしょうか

sansian3
質問者

お礼

大変詳細なご回答を頂き誠にありがとうございます、 おかげ様でExcelのデータが出来上がって参りました。 条件付き書式もアイデア次第でこんなに広がるんですね、 先程カレンダーのシートを作成し、試しに条件付き書式に リンクさせたのですが、私のExcel2003だけなのでしょうか、 「条件付き書式は他シートの参照は出来ません」という エラーメッセージが出てきてしまいました。 しかし同じシート内にもたくさん行列が有りますので そちらにカレンダーを作成致しました。 ずっと悩んでおりましたが解決致しました、 本当にありがとうございました。

その他の回答 (2)

noname#79209
noname#79209
回答No.3

#1です。ゴメンナサイ。 質問1と2については、16日スタート、翌月15日締めでしたね、 そこで、A3は =DATEVALUE(IF(VALUE($A$1)>1900,"","H")&$A$1&"/"&$B$1&"/16") A4に =A3+1 として、A30までコピー。 A31に =IF(OR(A30=0,DAY(A30+1)>15),0,A30+1)として、A33までコピー。 これで、クリアされたとハズです。 ただし、和暦で入力する場合は、 A3の数式を、 =DATEVALUE(IF(A1>1900,"","H")&A1&"/"&B1&"/15") とすれば両対応できます。(ただしH20でなく20と入力)

sansian3
質問者

お礼

2回にも渡り詳細なご回答ありがとうございます、 おかげ様でExcelのデータが出来上がって参りました。 歴月締めじゃないのでとても紛らわしく、 悩んでおりましたが解決致しました、 本当にありがとうございました。

noname#79209
noname#79209
回答No.1

とりあえず、1.について A1に年、B1に月を入れるとして、 A1の表示書式を「0000"年";;」、B1の表示書式を「0"月";;」 2行目は項目名の行。 A3:  =DATE($A$1,$B$1,1) A4~A30:  A4に「=A3+1」として、A30までコピー A31:  「=IF(DAY(A30+1)<4,0,A30+1)」としてA33までコピー A3~A33を選択し、表示書式を「d"日("aaa")";;」として右寄せ。 これで、A1に年、B1に月を入れると、その年月の日付がA列に曜日つきで表示されます。 大の月、小の月、閏年に対応して、無い日付はブランクになります。 (小の月の31日、2月の29や閏年の30日以降がブランクになります)

関連するQ&A

  • エクセルで勤務表を作りたい

    過去の質問をさがしてみたのですが 該当するものが見つからなかったので質問します。 エクセルで勤務表を作っています カレンダーを作成し休日のセルを色づけして表示したいのですが 隔週で土曜日を休日として設定したいんですけど 毎週のやり方はできたのですが 隔週のやり方がわかりません。初歩的な質問ですいませんがよろしくおねがいします。

  • エクセルでカレンダーを作りたいのですが。

    エクセル2003を使用しています。 次のようなカレンダーを作成したいと思います。 A1に2006などの年、A2、B2~に3/6などの月日、そしてA3、B3~に曜日(月、火…)の入ったカレンダーです。 A1の「年」やA2の「月日」を変更したら自動的に日にち(30日まで31日まで)や曜日が変わるようにするにはどうしたらいいですか? よろしくお願いします。

  • excelカレンダーに集計表

    この掲示板にて、カレンダーの作り方を拝見しました。 カレンダー日付の下に毎日累計値を入れていき、 その下に当日分の使用量が出るようにしたいのですが、 未熟者の為、月の変わり目が流動的でうまく式がたてれません。 ご教授の程よろしくお願いします。 今回参考にさせて頂いたカレンダーの元は下記のものです tazsan転用申し訳ありません。 D1に年(2004)、D3に月(12)と入力します。 一行あけてA5からG5までに、日・月・火・・・と曜日を A6 第一週日曜日 =IF(WEEKDAY(DATE($D$1,$D$3,1))=1,1,"") B6 第一週月曜日 =IF(ISNUMBER(A6),A6+1,IF(WEEKDAY(DATE($D$1,$D$3,1))=2,1,"")) C6 第一週火曜日 =IF(ISNUMBER(B6),B6+1,IF(WEEKDAY(DATE($D$1,$D$3,1))=3,1,"")) D6 第一週水曜日 =IF(ISNUMBER(C6),C6+1,IF(WEEKDAY(DATE($D$1,$D$3,1))=4,1,""))   ・   ・  以降、 A7 第二週の日曜日 =G6+1 B7 第二週の月曜日 =A7+1 C7 第二週の火曜日 =B7+1 ・・・という風に、第四週の土曜日までは前日に+1する計算式を書きます。 第五週は最終週なのですこし違います。 A10 第五週の日曜日 =IF(G9+1<=DAY(DATE($D$1,$D$3+1,1)-1),G9+1,"") B10 第五週の月曜日 =IF(ISNUMBER(A10),IF(A10+1<=DAY(DATE($D$1,$D$3+1,1)-1),A10+1,""),"") C10 第五週の火曜日 =IF(ISNUMBER(B10),IF(B10+1<=DAY(DATE($D$1,$D$3+1,1)-1),B10+1,""),"") D10 第五週の水曜日 =IF(ISNUMBER(C10),IF(C10+1<=DAY(DATE($D$1,$D$3+1,1)-1),C10+1,""),"")         ・         ・ これで、年と月を書き換えると日付が自動表示されるようになります

  • Excelのカレンダーについて。

    Excelカレンダーについての質問です。 Excel2010を使用しています。 seet1にカレンダーを作りました。 セルに、それぞれ年と月を入力すると、その年月の日付と曜日が縦に表示されるように設定しました。更に日付・曜日の横に予定を書き込めるようにレイアウトしました。 しかし、このままだと年と月を変更すると、日付・曜日は変更されますが、予定の部分はそのままです。年と月を変更すると、日付だけでなく、予定の部分も変更できるようにするにはどうしたらよいでしょうか? また、複数の人のカレンダーを管理するようにしたいです。 seet2に、番号と氏名の組み合わせのメンバーリストを作っています。 seet1のセルに番号を入力すると別のセルに氏名が表示されるようにしています。 番号入力し、氏名を変更すると、カレンダーもその人用に変更できるようにするにはどうすればよいでしょうか? 色々検索してみたのですが、これというものが見つからず、質問させて頂いております。 また、わかりづらい文章となっているかもしれません。すみません。 ご回答よろしくお願い致します。

  • 休日出勤手当ては請求できないのでしょうか?

    私の雇用形態は日給制の契約社員で職種は製造業です。 昨年大幅なリストラがあり工場勤務の正社員は全員解雇、現在工場作業員は契約社員のみです。 そこで質問なんですが年末年始の休暇について 会社カレンダーでは12月30日から1月3日まで休日となっています。 が、12月中旬社長から年末年始休暇を12月29日から1月8日にしようと思うとの告知があり全員了承しました。 その後、12月下旬に仕事の追加が出たのでやっぱり1月5日から出て下さい。8日(成人の日)は4日と振替とします。 と言われたので製造にかかわる従業員(契約社員全員+正社員1人)だけ出勤しました(1月5、6、8日)。 今考えると、  もともと8日まで休暇のはずなのでは?  4日と8日の振替って両日とも休日なのでは?  12月中旬の休暇日程の告知によって   会社カレンダーもそのように変更となるのでは? と思っています。  製造にかかわりの無い正社員は1月9日からの出社  新年行事の事務所神棚への参拝を1月9日に行った という実態もあり 年末年始の休暇は12月29日から1月8日で間違いないと思います。 就業規則で 休日は会社カレンダーによる。と記載されています。 休日出勤手当ての計算方法も 法定休日出勤の計算式(3割5分)と非法定休日出勤の計算式(2割5分)の記載があります。 (1)この出勤3日分(1月5、6、8日)の休日出勤手当ては請求できないのでしょうか? もし、会社カレンダーは変更されずに 製造にかかわりの無い正社員だけ多く休暇を取得しただけ と判断できる可能性があるのなら(それって有り?) (2)12月29日の休暇については休業手当の請求ができないのでしょうか? 2月5日が給料日でしたが休日出勤手当ては支払われていません。 皆さんの知恵を貸してください。お願いします。

  • これは休日出勤になりますか?

    毎週水曜日と日曜日が休みの仕事をしています。正社員です。 ちなみに日曜は定休です。 こういう場合突然水曜日出るはずの人が病欠して代わりに出た場合 休日出勤扱いとして賃金は増えますか? ただその週に祝日があった場合は週40時間越えていないので割増料金は出ないですよね。 タイムカードを提出する企業です。正社員なので休日出勤扱いにならないとなんだか損をした気分になります。 宜しくお願いします。

  • 年間休日について

    年間休日について 内定でた1つの会社が、 年間休日110~112 日祝 3週間に2日休み 【曜日は土でも可能】 夏季休暇 年末年始 となっていますが、隔週で2日休みの月に6日休みに比較したら休日自体は多いのでしょうか? カレンダー通りではなく、3週間に二回の休み、って紛らわしい感じがします

  • EXCELカレンダー出勤日黒色、休日赤色から1、0

    EXCEL会社カレンダー出勤日黒色、休日赤色があるとして ここから出勤日1、休日0のデータマトリックスを作るマクロを教えてください 例 2014/1 0,0,0,0,0,1,1,1,1,1 2014/2 0,0,1,1,1,1,1

  • エクセルで作る万年カレンダーで使う関数について(パート2)

    再び質問させて頂きます。エクセルで万年カレンダーを作ろうと、解説のホームページを見ているのですが、分からない部分があります。 〔表示例〕   2005/9/19 敬老の日   (      ) 国民の休日   2005/9/23 秋分の日   (      ) 振替休日 〔解説1〕 ※振替休日・・・ 日曜日と祝日が重なったとき ※国民の休日 ・・・祝日と祝日に挟まれた平日 ※振替休日と国民の休日が重なったときは、振替休日とする。 〔解説2〕 (敬老の日と秋分の日) 敬老の日が月曜日に固定されているので、秋分の日の曜日により国民の休日となる可能性があります。 (計算式) ・両祝日間が2日間であることから判定     =IF(B21-B19=2,B19+1,"") ・秋分の日が必ず水曜日になることから判定     =IF(WEEKDAY(B21)=4,B19+1,"") 解説の内容が、全体的にいまいち分かりません。(^^; 祝日同士が3日間の開きがあるのに、”国民の休日”が発生したりするのでしょうか? もしできたら、具体的にカレンダーの曜日まわりを含めて例を挙げて教えて頂けると助かります。 分かる方、ぜひよろしくお願いいたします。

  • 「隔週休2日制」とは具体的にどういう意味?

    応募しようと考えている会社の求人で、休日休暇が「隔週休2日制(水曜、シフト休暇隔週1日)となっていました。私は今まで毎週土日休みの完全週休2日制の会社でしか働いたことがないのですが、この会社の休日休暇制度だと、週休2日は1週間ごとで、残りの週は休み1日だけという理解でいいでしょうか。(水曜、シフト休暇隔週1日)とはどういう意味でしょか?

専門家に質問してみよう