- 締切済み
ある期間までの年齢を何歳何カ月何日まで表示させたい
ある期間までの年齢を表示する時、何歳何カ月何日まで表示させたいのですが、教えてください。 現在、=Profile!E5-Profile!C6 というように、E5のところに何カ月か前の日にちがあり、C6のところに誕生日をいれてあります。それで、例えば26歳8カ月とあるのですが、何日まで表示させるにはどうしたらよいのですか。教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- bunjii
- ベストアンサー率43% (3589/8249)
>それで、例えば26歳8カ月とあるのですが、何日まで表示させるにはどうしたらよいのですか。 端数の日数は対象期間によって差が生じますので誤解を招きます。 月数までの表示では誤差を生じませんので非公式のDATEDIF関数で算出すれば良いでしょう。 延日数で表示するのであれば正確に算出できますので問題はありません。 誤解を承知で表示したいのであればDATEDIF関数と文字列を連結して文字列で結果を出せます。 =DATEDIF([誕生日],[目的の期日],"y")&"歳"&DATEDIF([誕生日],[目的の期日],"ym")&"ヶ月"&DATEDIF([誕生日],[目的の期日],"md")&"日"
- nishi6
- ベストアンサー率67% (869/1280)
DateDif関数を使って表示できますが、下に書いたような問題点があります。 会社では業種上の問題もあり、使用禁止の関数です。 md・・・マイナスの日が返ってきます (0、マイナスの日は誤解を招くので非表示にしています)) _____________md 1989/04/01→2014/03/01__0___24歳11ヶ月 4日間日なし 1989/03/31→2014/03/01__-2___24歳11ヶ月 4日間日なし 1989/03/30→2014/03/01__-1___24歳11ヶ月 4日間日なし 1989/03/29→2014/03/01__0___24歳11ヶ月 4日間日なし 1989/03/28→2014/03/01__1___24歳11ヶ月1日 ym・・・同じ期間なのに1ヶ月違う ____________ym__md 1989/01/31→2014/04/30__2__30_25歳2ヶ月30日 1989/01/31→2014/05/01__3__0_25歳3ヶ月__同じ結果 1989/02/01→2014/05/01__3__0_25歳3ヶ月__同じ結果 1989/12/30→2014/02/28__1__29_24歳1ヶ月29日 1989/12/31→2014/03/01__2__-2_24歳2ヶ月 y・・・同じ期間なのに1歳違う _____________y__md 1988/02/29→2014/02/28__25__30_25歳11ヶ月30日 1988/03/01→2014/03/01__26__0_26歳 日付は時刻で、時刻間を時間として時刻的な感覚で年・月・日で表そうとすることに問題がありそうです。Excelのバージョン毎にDateDif関数の仕様が変わっていますが、未だ「完璧」ではないようです。業務で使う場合は業務内容に即した年・月・日をユーザー定義関数で定義しています。例えば、経過年数が1ヶ月、1年違うと年金や退職金に大きくかかわってきます。使用目的に合わせて使うべき関数だと思います。 ご参考に。
- keithin
- ベストアンサー率66% (5278/7941)
=TEXT(DATEDIF(Profile!C6,Profile!E5,"Y"),"0歳;;;")&TEXT(DATEDIF(Profile!C6,Profile!E5,"YM"),"0ヶ月;;;")&TEXT(DATEDIF(Profile!C6,Profile!E5,"MD"),"0日;;;") みたいに。 「0ヶ月」とか出てこないよう仕込んでます。 #参考 >例えば26歳8カ月とあるのですが 今のやり方の延長では、単純にセルの書式設定の表示形式のユーザー定義で y歳mヶ月d日 と設定する事になります。 でもこのやり方じゃ、たとえば「26歳2ヶ月30日」とかみたいな計算結果は出せない事を確認してみて下さい。 有り体に言えば、そのやり方は間違ってます。