ドリンクバーゲン会場

曜日の自動設定2008年04月07日 10時32分30秒

4月になり、新しい年度で仕事が始まります。
派遣という立場で仕事をしていると、会社用と派遣先用の2種類の勤務表が存在し、締日が違うので別々に管理する必要があります。

私は合計や残業などの計算にエクセルを使っています。
1か月1シートで12枚のシートで1年分を1ファイルにしているのですが、年度が替わる際曜日を修正するのが結構面倒です。
月単位であれば、1日の曜日を入れてドラッグしてやればできますが、
この手間を省くために2つの関数を組み合わせています。

1つ目の関数は「TEXT」関数です。
TEXT関数は数値を文字列に変換してくれる関数で、
=TEXT(数値、文字列)
と言う式になります。
日付から曜日を表示させる場合には、
=TEXT(日付、"aaa")
となります。
"aaa"という指定で曜日を表示してくれるようになります。

「2008/4/1」などのようにセルに年月日がすべては言っている場合は、
そのセルを指定するだけですみます。
例えばA2のセルに年月日の情報が入っている場合には、
=TEXT(A2,"aaa")
で曜日がでますが、勤務表などの場合シートには日のみで月や年などの情報は入れないと思います。

そこで、2つ目の関数である「DATE」関数を使い、日付の情報を生成します。
=DATE(年、月、日)
という式になります。
年、月、日には、それぞれ数値をいれます。
勤務表では、日にちの指定は入っていますし、月単位でシートを作っているので、月の値は直接指定します。
年のデータは年度を指定するためのシートを追加し、そこに年のデータを登録します。

年のデータを”年度”シートのA1セルに2008を登録し、1日のデータが4月シートのA2に登録されている場合の2008年4月1日を求める場合の式です。
=DATE(年度!A1,4,A2)これで日付の情報として扱うことができるようになります。
5月の場合は月を”5”に変更するだけで5月の日付に変換できます。

TEXT関数の日付の項目にDATE関数を指定してやることで、
曜日を表示させることができます。

=TEXT(DATE(年度!$A$1,4,A2),"aaa")
年度には絶対値の指定を入れています。
これを各月のシート12枚にすべて設定していきます。

年度が変わった場合、年度シートの年を打ち変えるだけで1年分の曜日がすべて変わります。

注意点としては、4月始まりの場合、1月~3月は+1した値を入れることと、2月のうるう年をチェックし、29日が必要な場合に自動的に表示するように、設定を入れることです。

1月から3月は、年度の情報に1を足してください。
下記の式は1月のシートに設定する関数式です。
=TEXT(DATE(年度!$A$1+1,1,A2),"aaa")

うるう年は4年毎に来ますので、年のデータを4で割り、割り切れた年がうるう年になりますので、29日を表示します。
「MOD」関数を使い余りを求め、余りが0の時には29を表示し、
曜日も表示します。
=IF(MOD(年度!A1+1,4)=0,29,"")
=IF(A30=29,TEXT(DATE(年度!A1+1,2,A30),"aaa"),"")

上の式が閏年のチェックをし、うるう年の場合に29を表示させる式
下の式は、29が表示されているときに曜日を表示する式になります。

これで年度が変わるときに、年だけを変更するだけで1年分の曜日が
自動で修正されるようになります。
エクセルで曜日を多く扱う場合には試してみてください。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://n-box.asablo.jp/blog/2008/04/07/3009653/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。