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ヶ月を非表示にすることができます。