プロが教える店舗&オフィスのセキュリティ対策術

どうか教えてください。

エクセル2013を使って従業員の勤怠表を作っています。

1、従業員にはA4で印刷した1か月分の表に1日の出勤時間~退勤時間の実績(早出・残業時間)を手書きで記入してもらっています。(書式1)

2、従業員(約30名)を一覧にまとめた出勤表を1月分をシートごとで作成しています。(書式2)

3、従業員が手書きをする勤怠表(書式1)に一覧にまとめた出勤表(書式2)の休日を反映させて従業員個別の氏名と休日を入力して印刷したいです。

4、書式1に「5月」と入力して氏名欄のプルダウンリストで従業員氏名(Aさん・Bさんなど)を選択すると、選択した人の5月出勤表(書式2)から抽出して休日を反映するようにしたいです。

これを作成する事は可能でしょうか?

書式2はシートごとに平成30年3月まで作成しています。

関数やVBAなどあまりわからないですが、どうか皆さんのお知恵をお貸しください。

説明が下手で申し訳ございませんが宜しくお願い致します。

「勤怠表作成について」の質問画像

A 回答 (3件)

「VBAなどあまりわからない」とのことですが、多少ならマクロも分かるのですよね?


ヒントだけになりますが、添付画像のように範囲指定でコピーし、行列を入れ替えて貼り付けすれば、それなりのものが出来上がります。
これをマクロで記録し、ちょっと手を加えれば、比較的簡単に実現できそうですよね。
「勤怠表作成について」の回答画像3
    • good
    • 0

こんにちは!



各月のシートが存在するのですね?
一例です。
下準備が大変ですが、コツコツやってみてください。
まずシリアル値で扱った方が間違いないと思いますので、
↓の画像のように「書式1」のシートの「年」と「月」を入れるセルを分けます。
そして各シート名は 2017年5月 2017年6月・・・とします。

まず各シートの日付行をシリアル値にします。
2017年5月のシートの場合は
B5セル(セルの表示形式はユーザー定義から d としておく)に
=IF(MONTH(DATE(2017,5,COLUMN(A1)))=5,DATE(2017,5,COLUMN(A1)),"")

B6セル(セルの表示形式はユーザー定義から aaa としておく)に
=IF(B5="","",B5)

という数式を入れ月末(31日)までのAF列までコピーしておきます。

2017年6月のシートの場合はB5セルの数式だけが変わります。
=IF(MONTH(DATE(2017,6,COLUMN(A1)))=6,DATE(2017,6,COLUMN(A1)),"")

2017年7月は
=IF(MONTH(DATE(2017,7,COLUMN(A1)))=7,DATE(2017,7,COLUMN(A1)),"")

のように各シートに手を加えて5行目はシリアル値にしておいてください。

次に「書式1」のシートのA5セル(セルの表示形式はユーザー定義から d としておく)に
=IF(MONTH(DATE(A$1,A$2,ROW(A1)))=A$2,DATE(A$1,A$2,ROW(A1)),"")

となりのB5セル(セルの表示形式はユーザー定義から aaa としておく)に
=IF(A5="","",A5)

という数式を入れ、A5・B5セルを範囲指定 → B5セルのフィルハンドルで31日までの35行目までコピーしておきます。

そしてC5セルに
=IFERROR(INDEX(INDIRECT(A$1&"年"&A$2&"月!A:AF"),MATCH(E$2,INDIRECT(A$1&"年"&A$2&"月!A:A"),0),MATCH(A5,INDIRECT(A$1&"年"&A$2&"月!$5:$5"),0))&"","")

という数式を入れフィルハンドルでダブルクリック!

これで画像のような感じになります。

A1・A2セルの数値を入れ替えるだけでE2セルの人の「休」に「○」が表示されると思います。

※ 長くなりましたが、参考になりますかね?m(_ _)m
「勤怠表作成について」の回答画像2
    • good
    • 1

作成を出来るだけ簡単(にして、貴方自身が理解し易いよう)にするための確認です。


》 書式1に「5月」と入力して…
単に文字列で「5月」と入力するのでなく、「2017/5/1」と入力することは可能ですか?表示は貴方の添付図のように「2017年5月」とさせます。

》 書式2はシートごとに平成30年3月まで作成しています。
「シートごとに」の意味は「各月ごとに」のこと(1年分は12シートも!)と理解してますが、1年ごと(4月から翌年3月まで)にすることは可能ですか?YESなら、「書式1」は Sheet1 に、「書式2」は Sheet2 に、1年分を Sheet 2枚に簡素化できます。
    • good
    • 0

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