• ベストアンサー

年齢を割り出すエクセルの関数式を教えてください。

西暦で誕生日がわかっています。 誕生日はYYYY/MM/DDで入力されています。 ここで例えば2007/6/1現在の年齢を割り出したい のです。 式がわかる方、教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • outerlimit
  • ベストアンサー率26% (993/3718)
回答No.1

年齢計算基準日(現在日) A1 生年月日 を A3 に入力して 年齢を B3に表示する場合 B3に =datedif(A3,$A$1,"Y")  書式設定をG/標準 で満年齢が表示されます

ringsjapan
質問者

お礼

ありがとうございました。 早速使用して処理して行きます。

その他の回答 (4)

  • oyaji-man
  • ベストアンサー率34% (123/354)
回答No.5

2004/02/29 に生まれた方は 2007/02/27 で2歳なのか3歳なのか? 2007/2/27では まだ 2歳です 法律解釈上 誕生日の前日に1歳加齢するので 2004/02/29 に生まれた方は 2007/2/28 に 3歳になります。

ringsjapan
質問者

お礼

勉強になりました。 ありがとうございました。

noname#140971
noname#140971
回答No.4

イミディエイト] ? GetAge("2004/02/29", "2007/02/27") 2 ? GetAge("2004/02/29", "2007/02/28") 3 ? DateDiff("yyyy", "2004/02/29", "2007/02/27") 3 ? DateDiff("yyyy", "2004/02/29", "2007/02/28") 3 さて、2004/02/29 に生まれた方は 2007/02/27 で2歳なのか3歳なのか? 余り、年齢計算には詳しくありません。 よって、下記の GetAge関数には余り自身がないのですが・・・。 Public Function GetAge(ByVal Birthday As Date, ByVal Hiduke As Date) As Integer   GetAge = DateDiff("yyyy", Birthday, Hiduke) + _        (Format(Birthday - 1, "mm/dd") > Format(Hiduke, "mm/dd")) End Function

ringsjapan
質問者

お礼

ありがとうございました。 GetAge関数は初めて知りました。 早速使用して処理して行きます。

  • oyaji-man
  • ベストアンサー率34% (123/354)
回答No.3

例えば2007/6/1 と入力されているセルを A1 として 誕生日が入力されているセルを B1 とした時の式は =DATEDIF(A1-1,B1,"Y") と なります。 年齢は誕生日の前日に加齢します。 例えば 2006/6/7 の誕生日の人は     2007/6/6 に1才になります。

ringsjapan
質問者

お礼

ありがとうございました。 早速使用して処理して行きます。

  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.2

隠し関数のDATEDIFを使うのが一番簡単なんですが。 誕生日をB1セル、年齢計算の基準日をA1セルとすると =DATEDIF(B1,A1,"Y") これで年齢が出てきます。DATEDIFはLotus1-2-3との互換性を確保する ための関数ですので、ヘルプには出てきません。また、月・日の計算 に問題があるので、月数・日数の計算をするにはお勧めできませんが、 年の計算なら、全く問題なく動作します。

ringsjapan
質問者

お礼

ありがとうございました。 早速使用して処理して行きます。

関連するQ&A

  • Access2007での年齢計算

    ある時点での満年齢を表示するため下記の[BEGDATE]に誕生日yyyy/mm/ddを書き[ENDDATE]にある時点のyyyy/mm/ddを書きテキストボックスのコントロールソースに下記の式を書きました。 =DateDiff("yyyy",[BEGDATE],[ENDDATE]) しかしこれだと年齢は出ますが誕生日を過ぎたある時点でも年齢か一才増えません。 どのように書けばよいのか教えてください。

  • エクセル 西暦のセルと月日のセルを合わせる

    西暦(yyyy)のセルと月日(mm/dd)のセルが分かれて存在しています。 これらを合わせて(yyyy/mm/dd)と表示したいのですが、 何か簡単に行う方法はありますか? 現在手入力していますが、データの量が膨大で困っています。 よろしくお願いします。

  • Access 2000での年齢計算

    Access 2000にて作成しているデータベースのレポートにて、顧客の年齢を計算しています。基本的には正しい年齢が表示されるのですが、一部の方の分だけ年齢の計算結果が正しくありません。現時点で見つかっている事例は2件のみですが、正しい年齢より1年多かったり、逆に1年少なかったりと、パターンが一定しているわけでもないため、どこに問題があるのかが分かりません。確認してみるべき点について色々お教え頂ければ幸いです。 記 ◎年齢計算に使っている関数は以下の通りです。 =Trim(IIf(Format([生年月日],"mm/dd")>=Format(Now(),"mm/dd"),DateDiff("yyyy",[生年月日],Now()),DateDiff("yyyy",[生年月日],Now())-1) & "歳") 「生年月日」フィールドに西暦で生年月日が格納されており、レポートを印刷する時点での日付と誕生日を比較することで、単純に年数の引き算をしたり、更に1を引いたりしています。 以上

  • Excel97の日付の書式設定

    現在Excel97で日付入力をしたいのですが、 最終的に演算に使用する日付で yyyy/mm/ddとyyyy/mmどちらでも入力できる書式設定を探しています。 yyyy/mm/ddの指定にするとyyyy/mmと入力してもyyyy/mm/01となってしまいます。 yyyy/mmのセルとdd専用のセルを別に作ると、ddを入力した時に 閏年のエラーチェックなどがかけられないので演算部分(1年後該当日前日の指定等)がうまく働きません。 いい方法がありましたら教えてください。

  • アクセス2000誕生日から満年齢出し方

    テーブルですが 最後の列が生年月日フォームなっています。 形式はyyyy/mm/ddです 友人に聞いてその回答は DateDiff("yyyy",[生年月日],Date())この式を クエリの生年月日フィールドの右側の空欄のフィールドへ入れるとでてくるよ。の回答で実行したら 式1:DateDiff("yyyy",[生年月日],Date())とでて クエリには 年齢がでてきました。 そこで 質問ですが テーブルに誕生日のフォームに生年月日打ち込むと 横の仮に「年齢」フォームに自動ででてくるようにするには どうしたらよいのでしょうか。 教えてください。

  • 今の自分の年齢を取得するvbaコードが知りたい

    今の自分の年齢を取得するvbaコードが知りたいのですが Sub test1() Dim dtm誕生日 As Date dtm誕生日 = #7/1/1986# MsgBox Format(Date - dtm誕生日, "yyyy/mm/dd") MsgBox DateDiff("yyyy", dtm誕生日, Date) End Sub を作ってみたのですが 違うのが返りました。 DateDiff("yyyy", dtm誕生日, Date) は、30が返ってしまいます。 今日の時点ではまだ29歳なのですが そういう場合どうすればいいでしょうか? 「現在は29歳です」と返したいのですが、 どのようにすればいいでしょうか?

  • Excel VBAで教えてください。

    Excel VBAで教えてください。 テキストデータをExcelで読み込んだ後、Sheet1に以下のデータが入っており、 A列 B列   C列 氏名 開始日(yyyy/mm/dd) 終了(yyyy/mm/dd) テキストボックスに開始日(yyyy/mm/dd)、終了日(yyyy/mm/dd)、を入力し、入力した開始日から終了日のデータ検索し、A列からのデータをコピーし、Sheet2に貼り付けしたい。 テキストデータをExcelで読み込むコードはできたのですが、その後の処理ができずに困っています。 ユーザーフォームに入力するコードも教えてください。

  • EXCEL 日付の入力形式

    こんにちは。 日付が、dd/mm/yyyyの形式で入力されたデータをもらいました。 関数を利用したいのでEXCELに日付として認識させたいのですが、 セルの書式設定で設定してもだめなようです。 質問 1)yyyy/mm/ddの形式で入力されていないと日付として認識されないのでしょうか? 2)現在の形式のまま、日付として認識させる方法はありますか? 3)dd/mm/yyyyをyyyy/mm/ddに変換する方法はありますか? 以上、よろしくお願いします。

  • Excelマクロで不要な行を繰り返し処理で削除する

    下記の図表【事前】のA列に時間(シリアル値)が入力されていますが、 これをマクロを使って不要な時間帯のデータを行ごと削除したいです。 それを実行するためのマクロをご教示頂けますでしょうか? 削除対象の条件 ・9:00:00~18:00:00以外の夜間や早朝の時間帯は削除する。 その他 ・データが入力されている行数分繰り返し処理 ・秒数、分数は全て0 ・列は3列(B、C列は任意) ・Excelのバージョンは2007 【事前】   A                        B      C 1 yyyy/mm/dd 01:00:00 ※削除対象 2 yyyy/mm/dd 23:00:00 ※削除対象 3 yyyy/mm/dd 09:00:00 4 yyyy/mm/dd 15:00:00 5 yyyy/mm/dd 17:00:00 6 yyyy/mm/dd 19:00:00 ※削除対象 7 yyyy/mm/dd 04:00:00 ※削除対象 【事後】   A                        B      C 1 yyyy/mm/dd 09:00:00 2 yyyy/mm/dd 15:00:00 3 yyyy/mm/dd 17:00:00

  • AccessのFormat関数について

    AccessのFormat関数に関しまして質問致します。 和暦を西暦へ更新クエリを使用してコンバートしているのですが入力されているデータの中に「平成15年2月31日」等の不可思議なデータが入力されており変換に困っています。 Format関数でエラーになった場合、Nullを返すように出来ませんでしょうか? <現在> =Format([年月日],"yyyy/mm/dd") 更新時にエラーが表示されNullが入力される事は重々承知しておりますが、何か不安ですので^^;

専門家に質問してみよう