プロが教える店舗&オフィスのセキュリティ対策術

こんにちは、エクセルについて教えてください。
ある会社での各社員の勤続年数の計算でA列に入社年月日、B列に本日の年月日があり、C列にAとBの期間(勤続年数)計算を
=DATEDIF(A30,B30,"Y")&"年" & DATEDIF(A30,B30,"YM") & "月"で
●年●月で表示させています。
さて、この各社員の勤続年数の平均を出すために通常のAvarage関数を使うと「ゼロで割りました」のメッセージが出て計算してくれません。勤務年数の平均を求める方法を教えてください。

A 回答 (7件)

過去ログです。


エクセルで平均年齢や平均勤続年数を求めるには?
http://oshiete1.goo.ne.jp/qa3213296.html
    • good
    • 1
この回答へのお礼

ありがとうございました。なんとかなりそうです。
早速挑戦です。

お礼日時:2008/10/28 20:54

多分なんですが 数式を計算させようとしてるからじゃないですかねぇ?



1列挿入して勤続年数を値で貼り付けてみては?
    • good
    • 0
この回答へのお礼

なるほど、ひとつの手かもしれませんね。

お礼日時:2008/10/28 19:11

>=DATEDIF(A30,B30,"Y")&"年" & DATEDIF(A30,B30,"YM") & "月"


ですので、結果が文字列として表示されています(左寄せだと思います)
AVERSGE関数に利用しても計算の対象になりません。
せっかくの式ですが、計算に使用する事は諦めて、別途関数作った方が早いかも。
例えば、 =AVERAGE(DATEDIF(A2:A100,B2:B100,"D"))
範囲は合わせて入力して Ctrl+Shift+Enter で決定すると式が{]で囲まれて
配列関数として認識してくれます。
それぞれの行を日数で計算して平均をだすと云った感じです。
そのセルの書式、表示形式、ユーザー定義で y"年"m"月"と変更してください。
    • good
    • 1
この回答へのお礼

早速の回答ありがとうございました。
文字列のままでは計算できないわけですね。

お礼日時:2008/10/28 20:45

社員数が0ということは無いでしょう。


文字列、空白セルは除外される関数である。
だから
どんな式になっているか例を書いたらどうですか。エラーの質問で有りながら、式も書かない質問が結構あるが、どういう考えかな。
ーー
それにエクセルのバージョンも書いてない。
http://pc.nikkeibp.co.jp/article/NPC/20060713/24 …
などにあるように2007からAVERAGEIF 、AVERAGEIFS が新たにできて、便利に使えるかもしれないから。
    • good
    • 0

>=DATEDIF(A30,B30,"Y")&"年" & DATEDIF(A30,B30,"YM") & "月"


は文字ですので、AVERAGE関数では求められません
数値で求めて下さい

参考までに
=AVERAGE(INDEX(DATEDIF(A30:A60,B30,"M"),))&"月"
あとはINT,MOD関数を利用してみて下さい
    • good
    • 0
この回答へのお礼

文字列は計算できないわけですね。
MOD関数は初めてです。試してみます。

お礼日時:2008/10/28 20:49

ANo.1です。



失礼しました。社員数は関係ありませんね。
与えられた値の数ですから。

多分、与えられた値に、ヘンなものがあると
思います。
    • good
    • 0

Avarage関数の問題ではなくて、使い方の問題で


しょう。

社員数で割らないといけないのに、社員数をうま
く指定できていないだけの話だと思います。
    • good
    • 1

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A