マンガでよめる痔のこと・薬のこと

QNo.5398295の質問の続きです。

おかげさまで月から月への勤続年数を求められるようになりました。

入社が1月ですと、たとえば8年12ケ月となってしまいます。この場合のみ9年と言う標記になりますか?

また、勤続年数から37ケ月(3年と1ヶ月)をマイナスする時にはどのような式になりますか?

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

ごめんなさい。

前回のご質問とも関連しますが、次のような式にすればよいでしょう。
=INT((DATEDIF(B2,A$5,"M")+1)/12)&"年"&IF(MOD((DATEDIF(B2,A$5,"M")+1),12)=0,"",MOD((DATEDIF(B2,A$5,"M")+1),12)&"ヶ月")
また、37ヶ月のマイナスの場合には次の式になりますね。
=INT((DATEDIF(B2,A$5,"M")+1-37)/12)&"年"&IF(MOD((DATEDIF(B2,A$5,"M")+1-37),12)=0,"",MOD((DATEDIF(B2,A$5,"M")+1-37),12)&"ヶ月")
    • good
    • 0
この回答へのお礼

KURUMITO様

毎々ありがとうございます。できました!!!!

私も勉強しないといけませんね。

お礼日時:2009/10/27 10:16

要するに「かぞえの月数」みたいな感じですね。

2009年12月中に入
社したら、12月31日時点で1ヶ月勤続とみなすと。

そういうときは、入社日の前月末日からカウントします。
=datedif(eomonth(B2,-1),$A$5,"Y")&"年"&datedif(eomonth(B2,-1),$A$5,"YM")&"ヶ月"
こんな感じ。これなら無条件で月数に1加算したりしないので、8年
12ヶ月なんてことにはなりません。eomonth関数の使用には、2004
までのExcelでは分析ツールをインストールしてくださいね。


> 勤続年数から37ケ月(3年と1ヶ月)をマイナスする
入社日の36ヶ月後の末日からカウントしてください。上の応用なの
でもう判りますね。
    • good
    • 0
この回答へのお礼

grumpy_the_dwarfさん、

さっそくのお助けをありがとうございました。

お恥ずかしい話、2003なので、インストールをしてやってみます。

ありがとうございました。

お礼日時:2009/10/27 10:05

>QNo.5398295の質問の続きです。


でしたら、そちらを評価してきちんと閉じられた方がいいでしょう。回答された方への礼儀です。

DATEDIF関数につていの理解が十分でないようなので、こちらを参考にしてください。理解できれば、ご自分で対応できるはずです。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu …
    • good
    • 0
この回答へのお礼

cistronezk様

便利なサイトのご案内をありがとうございました。私のような初心者には勉強となります。今後もこのサイトを見てから質問等をしたいと思います。

閉じるのをすっかり忘れておりました。。。。こちらの指摘も感謝です。

お礼日時:2009/10/27 10:20

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q勤続年数の平均を求めたい時の関数

エクセルで会社の従業員の勤続年数とその平均を求めたいです。
勤続年数のセルに
=DATEDIF(A1,TODAY(),"y")&"年"&DATEDIF(A1,TODAY(),"ym")&"ケ月"
といれて勤続年数を出してます。
それで次に従業員の勤続年数の平均を出したいのですが、AVERAGEを使うとエラー#DIV/0!が出ます。
どうすれば勤続年数とその平均が求められますか?
どんな方法でも良いので教えて下さい!!非常に困ってます(ー_ー)!!

Aベストアンサー

そりゃそうでしょう。計算対象が文字列扱いのデータなんですから、
エラーが出てアタリマエ、平均値が計算できワケがないです。

ですので、勤続年数の「数値」を持つセルを別に作る必要があります。
当然年/月のままじゃダメで勤続延べ何ヶ月という「月」の値にする
必要があります。ということで、上記のセルとは別に、

=DATEDIF(A1,TODAY(),"y")*12+DATEDIF(A1,TODAY(),"ym")

こうすれば、勤続延べ何ヶ月の数字が出てきます。この式を含むセル
についてAVARAGE関数で平均を取ってください。

で、出てくるのは勤続延べ何ヶ月ですから、こいつを12で割って「年」
余りを「月」にする必要があります。平均月が出たセルをB1として、

="平均"&INT(B1/12)&"年"&(B1-INT(B1/12)*12)&"ケ月"

こんな感じで表示できるはずです。
キモは「計算に使うセルと表示するセルを分ける」ということです。

計算に使うセルが表示上邪魔な場合は「書式」「列」「表示しない」
などで表示上隠す方法と、AA1~などの極端に離れたセルに記入して
おく方法などがあります。

そりゃそうでしょう。計算対象が文字列扱いのデータなんですから、
エラーが出てアタリマエ、平均値が計算できワケがないです。

ですので、勤続年数の「数値」を持つセルを別に作る必要があります。
当然年/月のままじゃダメで勤続延べ何ヶ月という「月」の値にする
必要があります。ということで、上記のセルとは別に、

=DATEDIF(A1,TODAY(),"y")*12+DATEDIF(A1,TODAY(),"ym")

こうすれば、勤続延べ何ヶ月の数字が出てきます。この式を含むセル
についてAVARAGE関数で平均を取ってください。

で...続きを読む

Qエクセルで平均年齢や平均勤続年数を求めるには?

エクセルで複数の構成員の平均年齢や平均勤続年数を求めるにはどうしたらいいのでしょうか?できれば、何年何ヶ月何日まで出せるといいのですが。

Aベストアンサー

それぞれの年齢と勤続年数の列を、日付関数を使ってつくります。関数ボックスにはない「DATEDIF関数」です。
=DATEDIF(A1,TODAY(),"D") ※A1は、生年月日、入社年月日が入力されているセルに書き換えてください。
平均値は「AVERAGE関数」で計算しましょう。=AVERAGE(C1:C4)
セルの書式をユーザー定義で「yy"歳"mm"ヵ月"dd"日"」や「yy"年"mm"ヵ月"dd"日"」などお好みに設定してください。

余談ですが、DATEDIF関数の第3引数「D」は日数を指定しています。年数なら「Y」、月数なら「M」です。解説しているサイトがありますので、検索してみてください。あと、年齢計算は =DATEDIF(A1,TODAY()+1,"D") の方が自然なのかな?


人気Q&Aランキング