10/10/2019

Excel。DATEDIF関数で期間を計算。0年や0ヶ月を表示させないようにしたい【DATEDIF】

Excel。DATEDIF関数で期間を計算。0年や0ヶ月を表示させないようにしたい

<TEXT+DATEDIF関数>

在職期間や、入会期間など、開始日から今日まで何年何ヶ月という期間を算出してくれるのが、DATEDIF関数です。

ただ、このDATEDIF関数ですが、関数の挿入ダイアログボックスに表示されることもなく、数式を直接入力して作成するしか方法がない関数ですね。

ビジネスシーンではおなじみの関数ですが、何年在籍したのかという数式を作って、まずは確認します。

C4に直接数式を入力していきます。
=DATEDIF(B4,$A$1,"y")

DATEDIF関数の引数は、
DATEDIF(期間開始,期間終了,計算種別)
となっていますから、入社日が、期間開始なので、B4。

$A$1は、絶対参照を設定していますが、A1で作成した数式をオートフィルでコピーしますので、絶対参照を設定しています。なお、A1が期間終了です。

計算種別ですが、今回は年で算出したいので”Y”と設定しています。

“Y”以外にも様々な種類が用意されています。
満年はY
満月はM
満日はD
1年未満の月数は、YM
1年未満の日数は、YD
1か月未満の日数は、MD

というのが用意されています。
ではオートフィルを使って数式をコピーしてみます。

このように、在職満年数が算出できましたが、今回は、何年何ヶ月というように何ヶ月も表示させたいので、この数式を次のように修正してみましょう。

C4の数式を次のようにして、オートフィルを使って数式をコピーしました。

=DATEDIF(B4,$A$1,"y")&"年"&DATEDIF(B4,$A$1,"ym")&"ヶ月"
ちょっと長くなりましたが、たいしたことはやっていませんね。

「&」を使って数式を結合させているのがわかります。

数式の前半は、DATEDIF(B4,$A$1,"y")&"年"という数式で先程のDATEDIF関数の後ろに”年”と文字を結合させています。

後半のDATEDIF(B4,$A$1,"ym")&"ヶ月"は、何ヶ月を算出させるDATEDIF関数です。

計算種別を”YM”とすることで簡単に算出できます。
最後の"ヶ月"をつけることで、完成ですね。

【0年や0ヶ月は非表示にしたい】

しかし、この表をよくみると、0年5ヶ月や4年0ヶ月というような表示があります。

これを5ヶ月や4年というように0を非表示にしたので、再度数式を修正していきます。

D4の数式を確認してみます。
=TEXT(DATEDIF(B4,$A$1,"y"),"0年;;")&TEXT(DATEDIF(B4,$A$1,"ym"),"0ヶ月;;")

説明をしてきます。

TEXT関数を使用しています。

TEXT関数は表示形式を設定することができる関数です。
"0年;;"や"0ヶ月;;"は、「0;;」で説明すると、表示形式は、「正;負;ゼロ;文字」というルールなので、「正数は数値を表示(0);負数は指示がないので、表示しない;ゼロも指示がないので表示しない」と設定することができます。

こうすることで、0年や0ヶ月を非表示にすることができます。