gooポイントが当たる質問投稿キャンペーン>>

社員リストを作成しております。 今日現在の年齢をDATEDIF関数で計算して表示していますが、最後の引数を"Y"とすると45歳とか48歳となってしまいます。 これを45.3歳とか48.7歳といったような小数点付きで表示させるにはどのような引数を利用すればよいか解らず困っています。どなたか詳しい方、助けて下さい。 よろしくお願いします。

A 回答 (3件)

誕生日ぎりぎりあたりで微妙に数値がおかしくならないためには、


整数部にdatedif(出生日,today(),"Y")を使うのは避けられないで
しょうね。小数部の表記は「月数/12」なのか「日数/365.25」なの
か…いずれにしろdatedif関数で、第3パラメータを月数を使うなら
"YM"、日数を使うなら"YD"でしょう。

=datedif(出生日,today(),"Y")+datedif(出生日,today(),"YM")/12
みたいな感じ。

最後を12じゃなくて100で割ったら、45歳8ヶ月が45.08で32歳11ヶ月
が32.11になりますけどね。
    • good
    • 1
この回答へのお礼

早速のご回答ありがとうございます。
No.2さんの回答で少しガッカリしていたところへgrumpy_the_dwarfさんの完璧な回答! 単純に年の部分と端数の部分を足せばよいのですね。
大変助かりました。どうもありがとうございました。

お礼日時:2007/10/16 15:36

小数が、年を単位とする1未満の数字(月をあらわさないの)なら



引数を"D"とし、=DATEDIF( , ,"D")/365.25
あとは表示桁数をお好みに。
社員20歳~60歳の範囲でしたら誤差はなく
使用できると思います。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
日数に直して365で割る方法ですか…。 エクセルなら気の利いた方法があると信じて質問したんですが残念です。

お礼日時:2007/10/16 15:33

ちなみに45.3歳とは45歳と何ヶ月を意味するのでしょうか?

    • good
    • 0

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

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

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

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

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勤続年数の平均を求めたい時の関数

エクセルで会社の従業員の勤続年数とその平均を求めたいです。
勤続年数のセルに
=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エクセルの関数で平均年齢の出し方を教えてください。

エクセルでTODAYを元に年齢を
=DATEDIF(H5,$J$3,"Y")&"歳"&DATEDIF(H5,$J$3,"YM")&"ヶ月"
のようにして○歳○ヶ月というようにセルに表示されるよう関数
で求めています。

この○歳○ヶ月のセル列の最後に平均年齢を求めたいのですが、
=AVERAGE(範囲)では求められないので
どのようにすえば求められるのか教えていただけないでしょうか?

宜しくお願いたします。

Aベストアンサー

次のような式でどうでしょう。
=DATEDIF(AVERAGE(H:H),$J$3,"Y")&"年"&DATEDIF(AVERAGE(H:H),$J3,"YM")&"ヶ月"

QEXCELの年月変換について

小数点の年数を『何年何ヶ月』と変換したいのですが、
どういった関数や操作をすればいいのか分からないため、
質問いたします。

例をあげますと、
「1.5」の数値を、『1年6ヶ月』という表示にしたい、といった具合にです。

説明が不十分であれば、補足説明いたします。
また、それに関するお勧めサイトがあれば
重ねてお願いいたします。

Aベストアンサー

「1.5」の数値がA1に入っているとして、簡単に済ますなら
=INT(A1)&"年"&INT(MOD(A1,1)*12) &"ヶ月" でしょうか。

INTで1.5の整数部分「1」だけを取り出し年にしています。

MOD(A1,1)で小数点以下の値「0.5」を取り出し、12を掛けて月にしています。
そのままですと、「1.6」の時1年7.2ヶ月と、なってしまいますので、月数もINTして整数だけ表示しています。

Q年齢の平均を求めたいのですが

EXCELを使って表計算をしています。
次のような、年と月が合わさった年齢の平均の求め方を教えてください。
(例)Aくん 7歳6か月
   Bくん 8歳10か月
   Cさん 5歳1か月
      ・
      ・
      ・
   平均:( ○歳○か月)

ただ今、名前と年齢(8-10の形で)が入力されているのですが、この形から平均を出せるでしょうか?教えてくださいませ。  

Aベストアンサー

たとえば、セルA2に8歳10か月というデータが、'8-10 という文字列の形で入っているとします。

B2に =FIND("-",A2)
C2に =LEFT(A2,B2-1)
D2に =MID(A2,B2+1,999) '999は適当です
E2に =C2*12+D2

3行目から下には、これらの式を必要なだけコピーします。

こうすると、E列は「月齢」になりますから、それを平均します。
仮に、でてきた平均値が E50に入っているとすると、

E51に =INT(E50/12) 'これが、平均値の「歳」の部分
E52に =E50-12*E51 'これが、平均値の「か月」の部分になります。

Q年数の小数点表記について

例えば経験年数などを表記するとき、2年3ヶ月を「2.3年」と表記している人がいますが、この表記方法は正しいのでしょうか。
私としてはとても違和感があってすっきりしないのです。
何故かと申しますと、時間の場合ならば例えば1時間30分を「1.5時間」と表記しますよね?
これならば1時間とその半分だから0.5時間を足した数ということで納得がいくのですが年数は12進法ですよね。これを小数点表記するのは何だかおかしい気がしてならないのです。2年3ヶ月ならまだしも2年11ヶ月は2.11年?になるのでしょうか・・・。
私は理数系は不得意なので理数系の得意な方からしてみれば下らないことかもしれませんが、どなたかご存知の方がいらっしゃればお教えくだされば幸いです。

Aベストアンサー

数学的には誤りです。

なぜそのような誤用が多いのでしょう。

おそらく、10進法が多い世の中で、60進法との誤用は少ないが、12進法は誤差が少ないために、「つい」小数表記してしまうのではないでしょうか。

小中学生にはあまり見かけない誤用ですが、数学の授業から離れて久しいということも、本来の小数の意味を忘れて、誤用する一因かもしれませんね。

Q勤続年数の平均値の求め方

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

Aベストアンサー

過去ログです。
エクセルで平均年齢や平均勤続年数を求めるには?
http://oshiete1.goo.ne.jp/qa3213296.html

Q生年月日から”○歳×ヶ月”を抽出したい(エクセル)

こんにちは(*^-^*)
例えば、
セルA1に「H15.2.10」と入力されていたときに、
B1に「0歳1ヶ月」と表示させたいのですが、どうしたらいいでしょうか?
「今日」までの月齢で、満何歳何ヶ月かということです。
よろしくお願いします。

Aベストアンサー

こんにちは

こういう風にしたらどうでしょう。

A1に『H15.2.10』が入っているとします。
B1には
=DATEDIF(A1,TODAY(),"Y")&"年"&DATEDIF(A1,TODAY(),"YM")&"ヶ月"
これでOKです。
ちなみに何日まで知りたければ、
&DATEDIF(A1,TODAY(),"MD")&"日"
を上記の式のあとに追加すれば、0年1ヶ月21日 と表示できます。

Q平均年齢の表記方法(統計学的に)

ある母集団の平均年齢を表すときに
たとえば 69±XXX歳 と表記されていることがあります。
この「XXX」の計算方法を教えていただきたいのですが。
統計学的には基礎の基礎で馬鹿な質問と思いますがお願いします。

例えば次の10人の平均年齢±XXX(それぞれ5,13,60,46,35,30,40,10,70,65歳)の求め方を具体的な数式で教えてください。
簡単に計算できるソフトがあればお願いします。

Aベストアンサー

>1)標準偏差と標準誤差のどちらを使うのでしょうか?
どちらを使うのかは、趣味のレベルです。標準偏差は、データのバラツキを、標準誤差は平均値のバラツキを表しています。外国の論文では、表塾誤差を良く見かけますが、バラツキを少なく見せ掛けているような印象を受けます。個人的な偏見かもしれませんが。

>2)NO.2の方の回答では「xxx」=(最大値または最小値)-平均値を使う場合があるとなっておりますが、学会やプレゼンで使う場合どちらが一般的なのでしょうか。
 学会や論文では、標準偏差または標準誤差が一般的ではないでしょうか。最大値や最小値は、母集団から懸け離れた数値の可能性があるからでしょう。例えば、10、15、20、1000のような場合、1000は、偶然の可能性が否定できません。

Q平均年齢の計算

年齢を訊かれた時に、四捨五入(182捨183入?)して答える人は少なく満年齢で答えることが一般的だと思います。
それを前提に考えると、次の事実は正しい(と考えられる)でしょうか?
もし正しいとした場合、一般的な統計調査ではどうなっているのでしょうか?

1.「自分の年齢は33歳」と答えた集団の平均年齢は約33.5歳
2.「自分の年齢が30歳」と答えた人が50人、「自分の年齢が34歳」と答えた人が50人いるような100人の集団の平均年齢は32.5歳

Aベストアンサー

>「一般に、満年齢で調査した時は平均年齢を小数で表し、
何歳何ヶ月まで回答させた時は平均年齢も何歳何ヶ月という形で表す。後者の形式で表記したいなら、前者の値に0.5を足してから行うべきである。」

ほぼ正解だと思います。ただ、No.11で書いた「小数点以下は整数部分から月数が超えていることを意味するわけではない」ということも踏まえていただければ幸いです。

たとえば満年齢平均32.1歳という数字が出たとします。これは書いたように、究極的に32歳が9人と33歳が1人の集団です。そして、この集団の誕生日が一様であると認識して初めて、その平均は「32歳7ヵ月と1週間」と変換できます。ですから、「平均は32.1歳」を、その蓋然性の高さを踏まえた上で「平均は32歳7ヵ月」と発表するのは近似的に間違ってはいないでしょう。

ただし、これを「32.6歳」として発表するのは×です。これだと「究極は32歳2人と33歳3人の集団」という調査結果に変えてしまうことになりますから……うーん、ただし、「小数点以下が月に対応するように補正しました、平均は32.6歳です」と発表すれば、とりあえず32.6歳という数字を使っても間違いではないのでしょうが、これはつまり「変換作業を行った」と同義であり、小数点以下の意味合いが元の調査とは変質しています(究極的な集団の割合を示すものから、月まで含めた歳の細分を示すものへ)。それだったら32歳7ヵ月と書いた方が親切かと。


質問者様のご意見をふまえて、わたしの結論としてはこうです。
・満年齢の調査なら、32.1歳と発表することは純粋に計算結果を示すことであり、それはそれで意味がある(そもそもこの数値がなければ変換もできない)。
・質問者様のように補正すべきと考え、そうしたのなら、「補正しました」と書いた上で、32歳7ヵ月と発表すればよい。小数点以下の意味を明記した上で32.6歳としても間違いではないが、不親切。
・なにも書いていなければおそらく満年齢調査だと考えられるので、結果を見る側がもっと細かく知りたいのならば、発表された数値を変換する(誕生日が一様ならば、発表数値に0.5を足して月変換すればそれなりに近い数字が出ると思われる)。
・おそらく最も親切なのは、「満年齢の相加平均は32.1歳です、これは誕生日の分布を勘案すると32歳7ヵ月1週間に相当すると言えます」という発表。


そして最終的に、

> 「TV局や新聞社がどうやって発表するかまで、統計する側では制御できない」と言うのであれば、統計する段階で何らかの配慮(0.5をプラスするなど)を行うべきなのではないかと思うのですが、どうやっているのでしょうか?

という質問に対しては、「どうやっている」どころか、おそらくそのような配慮は「なにも」しておらず、満年齢をぜんぶ足して、総数で割った数字を発表しているだけでしょう(やっているなら質問者様も私も目にしているはずです)。だからそれを知らされるこちら側がもっと細かく知りたいのなら、変換する必要があります、ということになります。

>「一般に、満年齢で調査した時は平均年齢を小数で表し、
何歳何ヶ月まで回答させた時は平均年齢も何歳何ヶ月という形で表す。後者の形式で表記したいなら、前者の値に0.5を足してから行うべきである。」

ほぼ正解だと思います。ただ、No.11で書いた「小数点以下は整数部分から月数が超えていることを意味するわけではない」ということも踏まえていただければ幸いです。

たとえば満年齢平均32.1歳という数字が出たとします。これは書いたように、究極的に32歳が9人と33歳が1人の集団です。そして、この集...続きを読む


人気Q&Aランキング