- ベストアンサー
勤続年数の平均値の求め方
こんにちは、エクセルについて教えてください。 ある会社での各社員の勤続年数の計算でA列に入社年月日、B列に本日の年月日があり、C列にAとBの期間(勤続年数)計算を =DATEDIF(A30,B30,"Y")&"年" & DATEDIF(A30,B30,"YM") & "月"で ●年●月で表示させています。 さて、この各社員の勤続年数の平均を出すために通常のAvarage関数を使うと「ゼロで割りました」のメッセージが出て計算してくれません。勤務年数の平均を求める方法を教えてください。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
過去ログです。 エクセルで平均年齢や平均勤続年数を求めるには? http://oshiete1.goo.ne.jp/qa3213296.html
その他の回答 (6)
- ookami1969
- ベストアンサー率14% (137/953)
多分なんですが 数式を計算させようとしてるからじゃないですかねぇ? 1列挿入して勤続年数を値で貼り付けてみては?
お礼
なるほど、ひとつの手かもしれませんね。
- hallo-2007
- ベストアンサー率41% (888/2115)
>=DATEDIF(A30,B30,"Y")&"年" & DATEDIF(A30,B30,"YM") & "月" ですので、結果が文字列として表示されています(左寄せだと思います) AVERSGE関数に利用しても計算の対象になりません。 せっかくの式ですが、計算に使用する事は諦めて、別途関数作った方が早いかも。 例えば、 =AVERAGE(DATEDIF(A2:A100,B2:B100,"D")) 範囲は合わせて入力して Ctrl+Shift+Enter で決定すると式が{]で囲まれて 配列関数として認識してくれます。 それぞれの行を日数で計算して平均をだすと云った感じです。 そのセルの書式、表示形式、ユーザー定義で y"年"m"月"と変更してください。
お礼
早速の回答ありがとうございました。 文字列のままでは計算できないわけですね。
- imogasi
- ベストアンサー率27% (4737/17070)
社員数が0ということは無いでしょう。 文字列、空白セルは除外される関数である。 だから どんな式になっているか例を書いたらどうですか。エラーの質問で有りながら、式も書かない質問が結構あるが、どういう考えかな。 ーー それにエクセルのバージョンも書いてない。 http://pc.nikkeibp.co.jp/article/NPC/20060713/243375/ などにあるように2007からAVERAGEIF 、AVERAGEIFS が新たにできて、便利に使えるかもしれないから。
- sige1701
- ベストアンサー率28% (74/260)
>=DATEDIF(A30,B30,"Y")&"年" & DATEDIF(A30,B30,"YM") & "月" は文字ですので、AVERAGE関数では求められません 数値で求めて下さい 参考までに =AVERAGE(INDEX(DATEDIF(A30:A60,B30,"M"),))&"月" あとはINT,MOD関数を利用してみて下さい
お礼
文字列は計算できないわけですね。 MOD関数は初めてです。試してみます。
- Tasuke22
- ベストアンサー率33% (1799/5383)
ANo.1です。 失礼しました。社員数は関係ありませんね。 与えられた値の数ですから。 多分、与えられた値に、ヘンなものがあると 思います。
- Tasuke22
- ベストアンサー率33% (1799/5383)
Avarage関数の問題ではなくて、使い方の問題で しょう。 社員数で割らないといけないのに、社員数をうま く指定できていないだけの話だと思います。
お礼
ありがとうございました。なんとかなりそうです。 早速挑戦です。