• ベストアンサー

エクセルでタイムカードを作成したいのですが、、、

ご教示ください。 良くご存知の方には平易な質問かと考えます。 ・あるシートに年月をINPUTすれば、次のシートにひにち、曜日が合致したタイムカードが作成されること。 ・そこに社員番号、氏名を社員数分、いわゆる差込印刷が可能なようにしたい、、 以上の2点です。 実際には、このタイムカードを印刷したものに各自が手書き記入をするので、各セルへの細かいマクロ設定は不要となります。 なお、社員数は800名程度です。 以上ご教示頂ければ幸甚です。

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

  • ベストアンサー
  • 9der-qder
  • ベストアンサー率36% (380/1038)
回答No.1

参考まで。 > あるシートに年月をINPUTすれば、次のシートにひにち、曜日が合致したタイムカードが作成されること。 年:A1 月:B1 日:A3,A4,A5・・・に1,2,3・・・と と入力してあり 曜日はB3,B4,B5に表示させたいとすると、 曜日欄は =CHOOSE(WEEKDAY(DATE(A1,B1,Ax),"日","月","火","水","木","金","土") で表示できます。 なお、 =CHOOSE(WEEKDAY(DATE(A$1,B$1,Ax),"日","月","火","水","木","金","土") にすればドラッグアンドドロップで引っ張れます。 > ・そこに社員番号、氏名を社員数分、いわゆる差込印刷が可能なようにしたい、、 差し込み印刷は、wordの機能だったような気が・・・

その他の回答 (1)

  • minosennin
  • ベストアンサー率71% (1366/1910)
回答No.2

別案です。 1.sheet1 年月指定 sheet1のC2に指定年、C3に指定月を入力するものとします。 後の算式を分かり易くするために、C2を「年」、C3を「月」と名前を定義します。 C5に月末日を表示するためつぎの計算式を入力します。 =EOMONTH(DATE(年,月,1),0) C5を「月末日」と名前を定義します。 指定年(C2)に「2008」、指定月(C3)に「12」と入力すると、月末日(C5)には「31」と表示されます。 2.sheet2 タイムカード sheet2のA5に1日の日付、B5に1日に対する曜日が表示されるようにします。 A5につぎの計算式を入力します。 =IF(DATE(年,月,ROW()-4)<=月末日,DATE(年,月,ROW()-4),"") A5につぎの書式設定をします。 日付-「yyyy/mm/d」を選択-ユーザー定義-「yyyy/mm/」を末梢し、「d」のみ残す これで、「2008/12/1」は単に「1」と表示されます。 B5につぎの計算式を入力します。 =A5  つまり、B5はA5と同じ日付が入ることになります。これをつぎの書式設定によって、日付を隠して曜日だけ表示する訳です。 B5につぎの書式設定をします。 日付-「yyyy/mm/d」を選択-ユーザー定義-「yyyy/mm/d」の後に「aaa」と入力し、「yyyy/mm/d」の部分を抹消。 (「aaa」は曜日を表示するための編集語です。) A5とB5を選択し、下へ30行ドラッグ 以上です。これで31日の月は31まで、28日の月は28日までが曜日とともに自動的に表示されます。 差し込み印刷は、EXCELではVBAを使わないと無理だろうと思います。ここで説明できるレベルでないので、省略します。 なお、ご存じと思いますが、計算式は、この画面をコピーしてそのままEXCELに貼り付けできます。お試しください。

関連するQ&A