プロが教えるわが家の防犯対策術!

生年月日がわかっているリストから今日その人たちが何歳になるのかしりたいのですが。よろしくおねがいします。

A 回答 (6件)

データベース…はどんなものをお使いでしょう?


Excelなら
DATEDIF関数ですね。
http://www.nils.ne.jp/~fuzzy/EXCEL/excel_004.htm
A
ccessなら
こんな関数を使ってます。
http://www.ruriplus.com/msaccess/faq/faq_027.html

ロータス製品やオラクルでしたらワタシの範疇外ですので、他の識者にお任せします。

参考URL:http://www.nils.ne.jp/~fuzzy/EXCEL/excel_004.htm,http://www.ruriplus.com/msaccess/faq/faq_027.html
    • good
    • 0
この回答へのお礼

早々の回答ありがとうございました。教えてgooは今回初めてつかいました。こんなにたくさんの方から回答がすぐにくるなんて本当にびっくりです。Hageoyadiさんの回答早速ためしました。gooです。

お礼日時:2002/12/15 21:58

エクセルしかわかりませんが、


生年月日がA1に入ってるとして
=YEAR(TODAY()-A1+2)-1900
の式ででます。
他によいやり方があるのかもしれませんが。
    • good
    • 0
この回答へのお礼

ありがとうございました。この方法もためしてみました。

お礼日時:2002/12/15 21:59

4500rpmさんの式は使えません。

誕生日の前々日に年をとったり前日に年をとったりと
安定しません。

Hageoyadiさんの紹介したaccessでの方法(今年-誕生年-誕生日に達してなければもう1年)
はあちこちでみかける方法ですね。私も昔FileMakerで使ったことがあります。
この方法は「誕生日に達してなければ」の判定に「月*100+日」に相当する数値を使うと
ころがポイントで、これを思いつかないと結構面倒くさいことになります。かなりエレガ
ントな解法だと思います。

でも、if関数での条件分岐をなくせたらもっと美しいのにと思いませんか?
「誕生日に達してなければもう1年」というフレーズから「繰り下がり」なんて懐かしい
言葉を思い出せれば、年*10000+月*100+日同士の引き算で「誕生日に達してなければ」
年の桁に繰り下がりが発生するんだということがわかりますね。そうすれば後は10000で
割って整数部分だけ取り出せばOKじゃないですか。
というわけで、
=int(((今年*10000+今月*100+今日)-(誕生年*10000+誕生月*100+誕生日))/10000)
というのもアリです。シンプルでしょ。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2002/12/15 22:02

 ロータス アプローチなら計算型フィールドに、こんな感じ。



If(IsBlank(生年月日), '不明', Year(Today()) - Year(生年月日) - (DateToText(Today(), 'MMDD') < DateToText(生年月日, 'MMDD')))

※生年月日リストのフィールド名を「生年月日」(日付型)とする場合。
※改行無しで、繋げて入力。

 オラクルは知らないです(汗
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2002/12/15 22:12

#2です。

確かに誕生日でも年を取らないことがあるのはわかっていましたので
=YEAR(TODAY()-A1+2)-1900
             ↑を入れていることで問題ないと思っていたのですが。
以前、エクセルで作った名簿でシステムの日付を替えたりして10人ほど確認しましたが、問題なかったので使ってました。それで良いと思って載せたのですが...(^^ゞ

>誕生日の前々日に年をとったり前日に年をとったりと
安定しません。
どうしてこうなるんでしょうね。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2002/12/15 22:01

こんにちわ。



> オラクルは知らないです(汗
Oracle の場合、FLOOR(MONTH_BETWEEN(SYSDATE, 生年月日)/12)
でできると思います。

参考になれば。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2002/12/15 22:00

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

関連するカテゴリからQ&Aを探す