メディア個別 【エクセル関数】「隠し関数」を使い勤続年数を求める | editeur エディトゥール

editeur

検索
第11回 | デキる男の必修科目──大人のエクセル一問一答

【エクセル関数】「隠し関数」を使い勤続年数を求める

管理職としてスタッフの査定を行う際などに、判断材料のひとつとなる勤続年数。全員が4月入社なら計算も楽だが、中途入社のタイミングが複数ある会社だと、入社日を見ただけではすぐに勤続年数が把握できない場合もあるだろう。そこで役立つのが、指定した期間の年数や月数を自動計算してくれる関数だ。しかも今回使用するのは「隠し関数」と呼ばれる、ちょっとマニアックなもの。さっそく、問題に挑戦してみよう。

問題:次の表の「勤続年数」欄に、関数を使い入社日から現在(ファイルを開いた時点)までの勤続年数(満)を自動入力せよ。

難易度:☆☆☆★★
実用度:☆☆☆★★
目標ステップ数:4

解答:

入社日から現在までの勤続年数のように、指定した期間の長さを年や月などの単位で求めるには「DATEDIF(デイト・ディファレンス)」関数を用いる。また、今回の問題ではファイルを開いた時点の日付(と時刻)を求める「NOW(ナウ)」関数を併用している。では、標準解答の手順を紹介しよう。

●STEP1

勤続年数を自動入力したいセル(ここではE2)を選択してから「数式バー」をクリック。半角で「=DATEDIF(」と入力。

●STEP2

続けて計算の起点となる入社日が入力されているセル(ここではD2)をクリックし、半角で「,(カンマ)」を入力。

●STEP3

さらに続けて半角で「NOW(),”Y“)」と入力。この段階で関数式は「=DATEDIF(D2,NOW(),”Y”)」となっている。

●STEP4

Enterキーを押すと計算結果が表示される。結果が表示されたセル(E2)を選択し、さらにセルの右下をダブルクリックするとオートフィル機能が働き、残りの空欄が補われる。

【今回のまとめ】

今回のメインとなるDATEDIF関数は「=DATEDIF(開始日,終了日,単位)」という基本構文になる。通常は関数名の一部を入力することで「関数オートコンプリート」機能が働き、メニューから目的の関数を選ぶことができるのだが、DATEDIF関数はメニューに表示されない「隠し関数」となっている。そのため、DATEDIF関数を使うためには数式バーなどに直接関数を入力する必要がある。

元々、他の表計算ソフトとの互換性を保つために用意された特殊な関数であることが「隠し関数」とされている主な理由のようだが、DATEDIF関数はその中でも比較的よく利用する関数なので、おぼえておくと便利だ。なお、DATEDIF関数内で使用した、ファイルを開いている現時点の日付と時刻を計算するNOW関数は「NOW()」という構文になり、カッコ内には何も入力しない。

DATEDIF関数の「単位」は、表示させたい期間の形式を「“ 」と記号で指定する。記号の意味は以下の通りだ。

【”Y”】端数を切り捨てた満年数。
【”M”】端数を切り捨てた満月数。
【”D”】総日数
【“YM”】1年未満の端数となる月数(0~11までの数値となる)。
【”YD”】1年未満の端数となる日数(0~364までの数値となる)。
【”MD”】1か月未満の端数となる日数(0~30までの数値となる)。

「”Y”」を使うことで満年数は計算できるが、端数が切り捨てられてしまう。たとえば、端数となる日数を知りたい場合には、下の画面のように、別に単位を「”YD”」に指定したDATEDIF関数を使うようにすればよい。

勤続年数のほか契約期間を求めたい場合などにも役立つDATEDIF関数だが、うるう月がある場合や月末の認識といった特殊なケースでは、正しく計算されない場合がある点には注意が必要。特に、「”MD”」のオプションはマイクロソフト公式でも使用を推奨していない。とはいえ、よほど精密な計算を求めない限りは、DATEDIF関数の計算結果でも必要十分なはず。隠し関数であることも含め、知っていると一目置かれる関数といえるだろう。

Text by Toshiro Ishii

ピックアップ

editeur

検索