「勤続年数」を「1年未満の月数」や「1カ月未満の日数」まで調べる
- "統計資料"や"給料計算"などで「勤続年数」が必要な場合があります。
"統計資料"や"給料計算"などで「勤続年数」が必要な場合があります。
統計資料で「平均勤続年数」を調べたり、退職者の給与計算をする時に「勤続年数」が必要な場合があります。
特に「平均勤続年数」のように、職場全体の計算をするのは人数が多いので大変です。
勤続年数を出す方法には、Excelに用意されている、"YEAR関数"や"MONTH関数"を使う方法もありますが、このような計算に特化した"DATEDIF関数"を使えば「現在の年齢や2つの日付の期間などを求める」ことができます。
「1年未満の月数」や「1月未満の日数」まで調べる
「勤続年数」を調べる場合、「1年未満の月数」や「1月未満の日数」まで必要な場合があります。
YEAR関数やMONTH関数を組み合わせることで、「1年未満の月数」や「1月未満の日数」を算出することはできますが、数式が複雑になってしまいます。
専用の関数 "DATEDIF関数" を使えば簡単に算出することができます。
"YEAR関数"と"MONTH関数"を使って勤続年数を調べる
専用の関数を使わなくても、"YEAR関数" と "MONTH関数" を組み合わせることで勤続年数を計算することができます。
「入社年月日」や「退社年月日」が "シリアル値" であれば、"退社年月日" から "入社年月日" を引くことで「勤続日数」を求めることができます。
しかし、このままでは "日数" なので "年" にするためには複雑な計算式が必要です。
この方法では、「1年未満」や「1カ月未満」の "端数" を処理するために複雑な数式が必要です。
DATEDIF関数を使わずに「勤続年数」を計算
日付をYEAR関数を使って "年" に変換してから引き算することで「年数」を出すことができます。
この「年」だけの引き算では「丸1年経過していない場合でも "1年" として計上される」ので、丸1年経過していない場合は "1年引く" 必要があります。
① 「入社年月日」と「退社年月日」をYEAR関数を使って "年" に変換して引き算
② IF関数で「丸1年経過しているか」を判定して、丸1年たっていない場合は1年を減ずる
「年」の引き算では「10年」
「年」の計算だけでは、「10年」になる。
丸1年経過していないので、1年引いて「9年」
「4月1日」から「3月31日」までなので、計算上は "丸1年経過していない" ことになるので「10-1」で「9」になります。
※ 退社日は、退社の「翌日」を入力します
DATEDIF関数を使って「年数」「月数」「日数」を表示する
勤続年数を計算するには、専用の関数 "DATEDIF関数" が簡単です。
DATEDIF関数は " Lotus 1-2-3" との互換性を保つために Excel に追加されたという経位から、最新のバージョンでも Excel の "関数の挿入" ダイアログ ボックスや"入力支援の一覧"に表示されません。
そのため、手入力する必要がありますが指数は簡単です。
DATEDIF関数の指数
DATEDIF関数の指数は、「開始日」と「終了日」と「単位」だけです。
指数「単位」には、「1年未満の月数」などがありYEAR関数とMONTH関数を組み合わせて使う場合のような複雑な計算式は必要ありません。
DATEDIF関数を使って「年数」を表示する
「入社日」と「退社日」を指定し、指数 "単位" を「 Y 」にするだけで「勤続年数」が表示されます。
勤続年数に加えて、端数の「月」と「日」を表示する
指数「YM」と「MD」を使えば簡単に、「1年未満」と「1カ月未満」の端数を表示することができます。
1つのセルに「年・月・日」を表示する
1つのセルの中に「年」「月」「日」の3つの情報を表示することができます。
DATEDIF関数の注意点
経過日数(年数・月数)を計算する場合にとても便利な"DATEDIF関数" ですが、いくつかの注意点があります。
「うるう年」を挟む計算
「うるう年」の "2/29" を挟むような特殊なケースの場合、注意が必要です。
「うるう年の2月末(29日)」から「翌年の2月末(28日)」の場合、経過年数が「0年」になってしまいます。
「法律上の年齢」と「一般慣習での年齢」
日本の法律(年齢のとなえ方に関する法律)では年齢を「誕生日の前日(1日前)に加算」します。
一般慣習では「日付が変わった時点(誕生日当日)」で年齢を加算します。
法律に沿って年齢計算をする場合には、「基準となる "日付" に "1" を加算」することで誕生日の前日に年齢が加算されるようにします。
DATEDIF関数を使わずに「年齢計算」をする
DATEDIF関数を使わずYEAR関数等を使って年齢計算する場合、計算式は複雑になります。
「数え年」の場合は、「"今日の日付" から "生年月日"」を引くことで求めることができます。
「満年齢」の場合は、「誕生日を過ぎているかどうか」を条件にして「誕生日を過ぎていない場合は"数え年" から "1" をマイナス」します。
「誕生日を過ぎていない場合」は、"数え年ー1"
"誕生日前かどうか"を判定する方法は下記の手順です。
- DATE関数を使って「今年の誕生日」を算出
- IF関数の条件を「"今日の日付" が " 今年の誕生日" より "以下(※ 小さい)" 場合は "真" として「 -1 歳」します
- "統計資料"や"給料計算"などで「勤続年数」が必要な場合があります。