エクセルで平均年齢や平均勤続年数を求めるには?
エクセルで複数の構成員の平均年齢や平均勤続年数を求めるにはどうしたらいいのでしょうか?できれば、何年何ヶ月何日まで出せるといいのですが。
回答(4件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
下記15名の本日現在の平均年齢が31年6ヶ月23日ということでOKであれば…
A B C D E F
1 NO 姓名 生年月日 齢年 齢月 齢日
2 1 浅香 唯 1969/12/04 37 7 27
3 2 伊藤 みどり 1969/08/13 37 11 18
4 3 伊良部 秀輝 1969/05/05 38 2 26
5 4 小倉 優子 1983/11/01 23 8 30
6 5 喜多嶋 舞 1972/08/11 34 11 20
7 6 桑田 真澄 1968/04/01 39 3 30
8 7 桜庭 あつこ 1977/03/29 30 4 2
9 8 瀬戸山 清香 1987/04/03 20 3 28
10 9 竹内 結子 1980/04/01 27 3 30
11 10 堂本 光一 1979/01/01 28 6 30
12 11 中根 杏奈 1989/04/01 18 3 30
13 12 西田 ひかる 1972/08/16 34 11 15
14 13 ほしの あき 1978/03/14 29 4 17
15 14 松岡 修造 1967/11/06 39 8 25
16 15 森口 博子 1968/06/13 39 1 18
17 31.47 5.67 23.07
18 0 0.47 0.13
19 31.47 6.13 23.2
20 31 6 23
D2: =DATEDIF(C2,TODAY(),"Y")
E2: =DATEDIF(C2,TODAY(),"YM")
F2: =DATEDIF(C2,TODAY(),"MD")
範囲 D2:F2 を下方に 16行目まで複写
D17: =AVERAGE(D2:D16)
D18: =MOD(C19,1)
D19: =SUM(D17:D18)
範囲 D18:D19 を右方に複写
D20: =INT(D17) これをセル F20 に複写
F20: =ROUND(F19,0)
【教訓】
={AVERAGE(TODAY()-C2:C16)} 等の平均生存日数から書式設定だけで表示させた場合は、
「31年12ヶ月30日」という奇異な平均年齢になる“落とし穴”に嵌ります。
この回答へのお礼
丁寧なご回答ありがとうございます。
MODは初めて実用で見たのでなるほどと思いました。
No.2ベストアンサー20pt
それぞれの年齢と勤続年数の列を、日付関数を使ってつくります。関数ボックスにはない「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") の方が自然なのかな?
この回答へのお礼
ありがとうございました。
いくつかご提案をいただきましたので、試してみます。
セルの書式をユーザー定義で作成するのは、目から鱗でした。
No.1ベストアンサー10pt
A列に入社年月日、c列に生年月日、e1に=now()として
b列に、=a1-e$1 d列に =c1-e$1
b列、d列の平均(avereage関数)を出す
b列、d列の書式を yy/mm/ddに設定
これで如何?
この回答へのお礼
→b列に、=a1-e$1 d列に =c1-e$1とすると
解答はいずれもマイナスになりますが?
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示












