• 締切済み

エクセルで年齢自動入力をしたい

どなたか教えてください。 履歴書などで年齢を生年月日と入力日から自動入力するようにしたいのですが簡単にできるでしょうか。 EDATEを使うのでしょうか? たとえばA1にtodayを設定して生年月日の欄から自動的に 年齢を計算するようにしたいです。 today関数とnow関数の違いもよくわかりません。

みんなの回答

noname#9284
noname#9284
回答No.4

補足を読ませていただきました。 > セルをまとめてにTODAYをいれてみたら「#NUM!」と表示されてしまいました。 「#NUM!」は数式または関数の数値に問題がある場合に返されます。 次の事を試してみてください。 ☆一つのセルに「=TODAY()」と入力してEnterを押す。 引数は必要ありません。 このセルをどこかの数式で参照されたのですね? できればその数式を教えていただけないでしょうか。 > =IF(A1="","",DATEDIF(A1,TODAY(),"y")&"歳"&TEXT(DATEDIF(A1,TODAY (),"ym"),"0ヶ月")&TEXT(DATEDIF(A1,TODAY(),"md"),"0日")) A11 > 式の意味がよくわかりません。 すみません、コピーミスのようで =IF(A1="","",DATEDIF(A1,TODAY(),"y")&"歳"&TEXT(DATEDIF(A1,TODAY(),"ym"),"0ヶ月")&TEXT(DATEDIF(A1,TODAY(),"md"),"0日")) これが正しく、最後の「A11」はミスでした。 「#VALUE!」が戻ってしまったのではないでしょうか? もし生年月日が入力されているA1が空白なら空白を返します。 そうでなかったらDATEIFで"年数"だけを出します。 "歳"と次の式の戻り値をつなげます。 DATEDIFで"年"を引いた残りの端数の"月数"を出します。 "ヶ月"と次の式の戻り値をつなげます。 DATEDIFで月数を引いた残りの端数の"日数"を出します。 "日"をつなげます。 "0ヶ月"、"0日"とした理由は、例えば20歳の誕生日には 「20歳0ヶ月0日」のように表示されますので。 "歳"のところだけは"0歳"としなくても 一年未満の赤ちゃんの場合でも「0歳2ヶ月1日」のように戻ってくれます。 これについては説明ができません。 > 「歳」というのはセルの表示形式で「n歳」のように することはできないでしょうか? つまり「年数」だけ戻るようにすればいいわけなので http://www.miyazaki-cci.or.jp/nichinan/pc/case12.html のように =IF(A1="","",DATEDIF(A1,TODAY(),"y")) とすればいいわけです。 セルの書式設定でユーザー定義に「0"歳"」と入力してください。 更にわからない箇所がありましたら補足をお願いいたします。

noname#9284
noname#9284
回答No.3

> today関数とnow関数の違いもよくわかりません。 忘れていました。 =TODAY() では 2004/3/19 が表示されます。今日の日付です。 =NOW()では 2004/3/19 20:59  が表示されます。何時何分まで含みます。 しかしセルの表示形式を日付に変更すれば 2004/3/19 しか表示されません。 この2つは自動再計算関数です。このファイルを開き、何も変更を加えなくても「変更を保存しますか?」と聞かれますよ。 で、どこかのセルに何かを入力するたびに=TODAY()  =NOW() が計算しなおされるので、 これらの数式を大量に使うと、どこかに入力するたびに膨大な量の再計算が行われ、パフォーマンスが低下します。 (ファイルの動作が重くなります) ですから先の回答のように、数式の中でTODAY()を多用しないように 一つのセルだけで計算させ、各数式でそのセルを見に行くようにしたのです。 分かりにくければまたご質問くださいね。

9821
質問者

お礼

回答ありがとうございます。 まとめてレスさせて頂きます。 名簿を作ろうとしていたわけではないのですが試しに複数 入力してみました。全部の行にtodayを入れるのもたいへんなので、セルをまとめてにTODAYをいれてみたら「#NUM!」と表示されてしまいました。この方法はダメみたいですね。 せっかく長い式を教えていただいたのですが =IF(A1="","",DATEDIF(A1,TODAY(),"y")&"歳"&TEXT(DATEDIF(A1,TODAY(),"ym"),"0ヶ月")&TEXT(DATEDIF(A1,TODAY(),"md"),"0日")) A11 式の意味がよくわかりません。 「歳」というのはセルの表示形式で「n歳」のように することはできないでしょうか?

noname#9284
noname#9284
回答No.2

A1に生年月日が入力されているとしますと 数式は =IF(A1="","",DATEDIF(A1,TODAY(),"y")&"歳"&TEXT(DATEDIF(A1,TODAY(),"ym"),"0ヶ月")&TEXT(DATEDIF(A1,TODAY(),"md"),"0日")) で、○歳○ヶ月○日となります。 人数が多いようでしたらB1に=TODAY()を入力しておいて =IF(A1="","",DATEDIF(A1,$B$1,"y")&"歳"&TEXT(DATEDIF(A1,$B$1,"ym"),"0ヶ月")&TEXT(DATEDIF(A1,$B$1,"md"),"0日")) という数式にしてください。 なお、○歳だけで宜しければ http://www.miyazaki-cci.or.jp/nichinan/pc/case12.html ここなど参考になると思います。 なおDATEDIF 関数は、[関数のウィザード] および [関数の挿入] ダイアログ ボックスには表示されません。

参考URL:
http://www.miyazaki-cci.or.jp/nichinan/pc/case12.html
  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.1

=DATEDIF(A1,TODAY(),"Y") のように入れてみてください。

9821
質問者

お礼

早速のレスありがとうございました。

関連するQ&A

専門家に質問してみよう