• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelで入社・退社年月日を入力して、勤続年数表示したい)

Excelで入社・退社年月日を入力して、勤続年数表示したい

このQ&Aのポイント
  • Excelで入社年月日と退社年月日を入力すると、勤続年数が表示できるようにしたいのですが、方法が分かりません。
  • DateDifという関数があると過去の質問を検索してみたらでてきましたが、どのように使ったらよいのかが分かりません。
  • 入社年月日⇒14年4月1日 退社年月日⇒16年4月20日 勤続年数⇒2年1ヶ月という具合に、一ヶ月未満の日数がある場合は1ヶ月に繰上げて表示したいです。そして、休業期間がある場合は同様に休業期間を表示して、勤続年数からマイナスして結果的に勤続年数-休業期間=在職期間と表示できるようにしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • hakone
  • ベストアンサー率54% (40/73)
回答No.2

○年□ヶ月△日 =DATEDIF(A1,B1,"Y")&"年"&DATEDIF(A1,B1,"YM")&"ヶ月" &DATEDIF(A1,B1,"MD")&"日" ですが、 入社年月日⇒14年4月1日 退社年月日⇒14年4月30日 と書いた場合、DATEDIFの仕様として「初日不算入」です ので、4/2~4/30にちまでを数えることになります。 →【0年0ヶ月29日】 と表示されるはずです。 =DATEDIF(A1,B1+1,"Y")&"年"&DATEDIF(A1,B1+1,"YM")&"ヶ月" &DATEDIF(A1,B1+1,"MD")&"日" で多少マシになるかもしれませんが、上記の式は 使わないほうがよいです。なぜなら、 DATEDIF(A1,B1,"MD") と DATEDIF(A1,B1,"YD") には、うるう年に絡む不具合があり正しく計算されない ことが知られていますので。 例えば、 A1に 1998/10/31 B1に 2000/03/01 と入力した場合など。 詳しくは角田さんのページの http://www.h3.dion.ne.jp/~sakatsu/ktfunc_ref0206.htm#DATEDIF をご覧いただき、【kt関数アドイン】導入することを お勧めします。

参考URL:
http://www.h3.dion.ne.jp/~sakatsu/index.htm

その他の回答 (1)

  • hakone
  • ベストアンサー率54% (40/73)
回答No.1

入社年月日と退社年月日がA1,B1だとして、 =INT((DATEDIF(A1,B1,"m")+1)/12)&"年" &MOD((DATEDIF(A1,B1,"m")+1),12)&"ヶ月" #入社年月日⇒14年4月1日 #退社年月日⇒16年4月1日 #でも2年1ヶ月と表示します。 # #退社年月日⇒16年3月31日 #なら2年0ヶ月と表示します。 もうひとつのほうは、 休業開始がC1,休業終了がD1として =INT((DATEDIF(A1,B1,"m")-DATEDIF(C1,D1,"m"))/12)&"年" &MOD((DATEDIF(A1,B1,"m")-DATEDIF(C1,D1,"m")),12)&"ヶ月" かな? こっちは、細かい条件が書いていないので、適当です。

Oceans12
質問者

補足

早速の解答ありがとうございます。勤続年数ばっちり表示できました。 ちなみに、この勤続年数を○年□ヶ月△日という具合に日数まで表示したい場合はどうしたらいいのでしょうか? 1日付けで入社した人が末日で退職すると日数の端数はないはずですが、 =DATEDIF(A1,B1,"Y")&"年"&DATEDIF(A1,B1,"YM")&"ヶ月"&DATEDIF(A1,B1,"MD")&"日" でやってみると、日数があいません。 休業がある場合の計算は、 たとえばC1に勤続年数(2年0ヶ月10日)C2に休業期間(6ヶ月15日)があるとしたら、 C3に(1年6ヶ月5日)=1年7ヶ月と表示できるようにしたいのです。 教えていただいた方法でやってみましたが、うまくいきませんでした。

関連するQ&A