おすすめコンテンツ
home

2015年9月14日

IF関数を実践!エクセルでつくる有給管理表

vacation-sheet-with-excel

あなたの会社では、有給数の管理をどのように行なっているでしょうか。グループウェアなどのサービスを使っていれば、そのサービス上で自動的に管理されているかもしれません。

しかし、中には手作業で行なっている会社もあるのではないでしょうか。有給数を手作業で管理するのは、意外と手間がかかりますよね。たとえば、有給の付与には「何日付与すればいいんだっけ……」と考えこむこともあるかと思います。

実はこの手間、エクセルで解消できるかもしれません。今回は、エクセルのIF関数を使って、有給数を管理できるシートの作り方をご紹介します。

salaried-sheet-with-excel-r-1

有給付与のシステムとは?

労働基準法で定められている、正社員向けの有給の付与システムでは、下記のような日数に関するルールがあります。

  1. 入社日から、勤務6ヶ月、1年6ヶ月、2年6ヶ月……というように、勤務年数によって付与される最低限の有給日数が異なること。
  2. 有給には時効があり、付与されてから2年間で消滅すること。
  3. 有給の消化は、先に付与された有給から消化する。

(参考:大阪労働局

今回は、このシステムをエクセルで表現していきます。

入社年月に合わせて、勤続月数を算出する

有給は、勤務年月によって決まります。

しかし、単純に年数ではなく、勤務から半年後に始めて有給が付与され、その月を基準に年ごとに付与されていきます。その為、勤務月数を基準に式をつくった方がわかりやすくなります。

salaried-sheet-with-excel-2

まず、入社年月から入社月数を計算します。

salaried-sheet-with-excel-3

入社年月から入社月数を計算する時は、DATEDIF関数を使用します。

今回は、月数を計算するので

=DATEDIF(C4,$E$1,”M”)

となります。ちなみに、年数を算出する場合は、「”M”」の部分を「”Y”」にすると算出することができます。

IF関数を使って、勤続月数に合わせた有給を付与

勤続月数に合わせて有給を付与していくのですが、ここで重要なのは有給の時効は2年間だということ。このあたりが、有給システムを式で現す際の少し難しいポイントです。

計算では「当年付与」「昨年付与」「時効分(一昨年付与)」のそれぞれで何日有給が付与されるのかを求める必要があります。

これをIF関数を用いて表現します。

IF関数は、「判定する式」に対して「真の場合」と「偽の場合」の2種を算出します。

ですが、

=IF(判定式1,判定式1の真,IF(判定式2,判定式2の真,IF(判定式3,判定式3の真,……

というように、IF関数の中にIF関数を組み合わせていくことで、それぞれの条件に合わせた結果を算出していくことができます。ちなみにIF関数にIF関数を入れていくことを、入れ子と呼びます。

入れ子を使って有給システムの付与日数を計算すると、以下のようになります。

=IF(D4<6,0,IF(AND(D4>=6,D4<18),10,IF(AND(D4>=18,D4<30),11,
IF(AND(D4>=30,D4<42),12,IF(AND(D4>=42,D4<54),14,IF(AND(D4>=54,D4<66),
16,IF(AND(D4>=66,D4<78),18,IF(D4>=78,20))))))))

salaried-sheet-with-excel-r-4

前項の図の表に合わせて、勤続月数に合わせて、6ヶ月未満なら0、6ヶ月以上で10、18ヶ月以上で11日……という風に有給を付与していきます。

「昨年付与」、「時効分」は、「D4」の部分を勤続月数からそれぞれ12、24を引いた数字で同じ計算をすることで求めることができます。

その際、「昨年付与」列と「時効分」列のそれぞれの列の横に、計算用の列をつくっておくと便利です。

salaried-sheet-with-excel-5

計算用の列なので、列自体を非表示にしておけば、表もすっきりします。

有給の付与月かどうかをIF関数で判別

最初に述べた通り、有給には時効があります。基本的には当年付与された有給と去年付与された有給の合計が保有有給数となりますが、有給消化は先に付与された方から消化されます。有給付与月とそうでない月とでは行う処理は異なりますので、付与月かどうかの判別が必要になります。

そこで、当月が有給付与月を判別するIF関数を追加します。

有給付与月の場合、「●」を表示するようにします。

この際、便利なのは「OR関数」です。

IF関数の中にOR関数を埋め込むことで、いずれかの条件を満たしている場合は「●」そうでない場合はブランクを表示するようにします。

これを式で表現すると、以下のようになります。

=IF(OR(D4=6,D4=18,D4=30,D4=42,D4=54,D4=66,D4=78),”●”,””)

salaried-sheet-with-excel-6

有給消化日数を計算して、有給残りを算出

最後の仕上げです。

有給の使った日数を入力する欄を作成します。

有給付与月以外は、それがそのまま有給消化日数となりますが、有給付与月は時効分との相殺を行います。

判別式の結果を基に、それぞれ処理を変更するIF関数を作成します。

=IF(J5=”●”,IF(K5<=I5,0,K5-I5),K5)

salaried-sheet-with-excel-7

あとは、「当月付与」+「去年付与」-「有給消化」によって、有給残を算出する項目をつくれば、有給管理票の完成です!

salaried-sheet-with-excel-8

おすすめコンテンツ

※1 Excelは、米国Microsoft Corporationの、米国およびその他の国における登録商標です。

※2 「エクセルサプリ」 は、独立のコンテンツであり、マイクロソフトコーポレーションと提携しているものではなく、また、マイクロソフトコーポレーションが許諾、後援、その他の承認をするものではありません。

利用者情報の外部送信について

ヒューマンリソシア
Copyright © 2015 Human Resocia Co., Ltd. All Rights reserved.
smp-menu
  • ヒューマンリソシア