• 締切済み

エクセル関数で勤続年数を求めた時の表示

社員勤続年数を以下のように求めました。 =DATEDIF(A1,TODAY(),"D") 「yy"年"mm"ヵ月"dd"日"」の表示にする。 すると、2年経過した社員など、『1年12ヶ月』と表示されてしまいます。 これを『2年』と表示する方法はないのでしょうか? また、関数自体 =DATEDIF(A1,TODAY()+1,"D") の方が自然なんでしょうか? ご教示ください。よろしくお願いします。

みんなの回答

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.5

#01です。 求めたいのは平均勤続年月数なのですね。これは各人の勤続年月数と分けて考える方がよいです。「平均日数」は日付ではありませんから日付関数で考えると深みにはまります まず各人の勤続年月を表示する方法は既に述べました。 A1に入社日があるとき  ="満"&DATEDIF(A1,TODAY(),"Y")&"年"&DATEDIF(A1,TODAY(),"YM")&"カ月" で表示できます。入社日が2003/4/1なら「満5年0カ月」が表示されるはずです。 平均勤続年月数は各人の満日数を  =DATEDIF(A1,TODAY(),"D") で求めて、AVERAGE関数で平均を取った後(これを仮にC10セルとします)  =INT(C10/365)"年"&INT(MOD(C10,365)/30)&"カ月" で求められます。 (平均日数は「閏年」など考えても意味がないので単純に365日/年、30日/月で計算させても良いと思います) もし平均勤続日数が2317日なら上記式の結果は「6年4カ月」になります。

noname#69378
質問者

お礼

ありがとうございます。 関数、奥深い。。。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

>『1年12ヶ月』と表示されてしまいます。 日付の表示形式を使う以上どうしようもありません。 作業用に1列使えるなら B1=DATEDIF(A1,TODAY()+1,"M") で月数を計算して C1=TEXT(INT(B1/12),"年;;")&TEXT(MOD(INT(B1),12)),"ヶ月;;") で年月表示 B列の月数で平均を計算して、C列の数式で表示すればOKです。 >=DATEDIF(A1,TODAY()+1,"D") の方が自然なんでしょうか? 入社当日を1日と数えるなら+1日ですね。もっとも =TODAY()-A1+1 でも答えは同じですけどね。

回答No.3

日付形式で扱えば、1年0月や2年0月0日は絶対に現れません。カレン ダーを見ましょう。0月や0日は存在しませんね。ついでにいうと、 そんなやり方では在籍2ヶ月と28日の翌日は3ヶ月と1日になります。 経過日数に日付形式の表示を流用してはいけません。 まず、「平均勤続年数」のベースになる個人別の「勤続年数」に月 数や日数が必要なのかを決めて下さい。必要なければ、単純に =datedif(A1,today(),"y")でオッケーです。平均は7.8年などと出て きます。 月数まで必要だというのなら、すべてを月数で計算しておき、頭の 固い上司に見せるときだけ12で割ることを考えます。個人別に =datedif(A1,today()."M")で90ヶ月として、別にint(90/12)年とmod (90,12)ヶ月とするんです。 日数まで必要だといわれたら、1ヶ月在籍と29日在籍でどっちが長い か知ってますかと聞きましょう。

  • S-Fuji
  • ベストアンサー率36% (592/1624)
回答No.2

書式で対処しないで、関数で。 =DATEDIF(A1,TODAY(),"Y")&"年"& DATEDIF(A1,TODAY(),"YM")&"ヶ月" 当日をどのようにするかは、会社の規定が有るのでは

noname#69378
質問者

補足

ありがとうございます。 説明不足な点がありましたので補足します。 最終的に平均勤続年数を求めることが目的ですので、上記式ですと関数エラーになってしまうので、あえて使用しませんでした。 =DATEDIF(A1,TODAY(),"D") にてシリアル値みたいなものを出し、アベレージを利用したかったのです。 当日をどうするかは規程など確認してみます。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

この場合の式は以下になります 年  =DATEDIF(A1,TODAY(),"Y") 月  =DATEDIF(A1,TODAY(),"YM") 日  =DATEDIF(A1,TODAY(),"MD") この式なら本日2008/4/25に対して入社日2006/4/25ならば  2年0カ月0日 になります

noname#69378
質問者

補足

ありがとうございます。 NO.2の方に補足を記入しましたので、 ご覧いただけるとありがたいです。

関連するQ&A

専門家に質問してみよう