• ベストアンサー

年齢表示: ◯歳Xヶ月

「DATEDIF」関数で、満年齢を表示させる方法がありますが、これを応用するか、或いは応用しなくても、生年月日から基準日までの; 「何歳と何ヶ月」 を表示させる関数、方法を教えてください。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

間違いというわけではありませんが、質問者だけでなく回答者もDATEDIF関数やTEXT関数の効率的な使い方をされていないように思います。 また、No1の回答者のように第3引数の「YM」は1年未満の月数を直接表示することができます。 したがって、ご希望の数式は、単純に以下のような数式になります(A1生年月日、B1基準日)。 =DATEDIF(A1,B1,"Y") & "歳" & DATEDIF(A1,B1,"YM") & "ヶ月" 以下のページを参考にして、DATEDIF関数の仕組みを理解してください。 http://www.relief.jp/itnote/archives/000423.php

e-toshi54
質問者

お礼

出来ました!

その他の回答 (3)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.4

こちらで DateDif 関数の興味深い(頭の痛くなりそうな)考察・解説があります。 角田さんの http://www.h3.dion.ne.jp/~sakatsu/ktfunc_ref0206.htm#DATEDIF また、さらに知恵熱出して泡を吹きそうなスレッドがこちらに LMKさんの http://www.moug.net/faq/viewtopic.php?t=58788 ※なお、mougさんのログは三か月?経つと消滅してしまいます。 http://www.moug.net/faq/viewtopic.php?t=59756 は現在進行中。 回答では御座いませんのでご容赦を。

e-toshi54
質問者

お礼

Wow! 何にしても、奥義を極めるというのは大変なことなんですね。たかがが年齢。されど年齢。 Thank you, anyway.

  • qualheart
  • ベストアンサー率41% (1451/3486)
回答No.2

ちょっと無理矢理ですが、 =DATEDIF(DATE(年,月,日),TODAY(),"Y")&"歳と"&DATEDIF(DATE(年,月,日),TODAY(),"M")-DATEDIF(DATE(年,月,日),TODAY(),"Y")*12&"ヶ月" とやれば表示はできますね。 ご参考まで。

e-toshi54
質問者

お礼

ご提案ありがとうございました。 自分もこのアイデアは思いつきましたが、より簡便な方法、的確な関数はないものかと思っての質問でした。 もう少し、待ってみます。

e-toshi54
質問者

補足

満年齢の数字のみ、及び月数の数字のみ、個別のセルへの表示でも実用になります。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

=TEXT(DATEIF(生年月日,基準日,"Y"),"0歳;;;")&TEXT(DATEIF(生年月日,基準日,"YM"),"0ヶ月;;;")

e-toshi54
質問者

お礼

ご提案ありがとうございました。 "YM"の表現は小生のシートでは意味がないようです。一応"M"と解釈します。(それでも、よくわかりませんでした。)

関連するQ&A

  • Excel2000で年齢計算したいのですが

    WindowsMeでExcel2000を使用しているものです。基準日と生年月日を入れると満年齢が自動計算されるようにしたいのですが、うまくDATEDIF関数が入力できず困っています。どなたかわかりやすく教えて頂けませんか?

  • EXCELで年令計算するDATEDIF関数

    EXCELで年令計算する関数DATEDIFを使って、生年月日の記入をすると年令を表示しますが、 記入がないと 111才 になってしまいます。生年月日の記入がないときには 0才 にしたいのですが、わかりません。   たとえば、生年月日のセルを         B12         基準日(関数TODAY()を使用 )を E3         年令表示セルを           B11 にして、セルB11に次の関数を入力します。     =DATEDIF(B12,E3,"Y") & "才" すると、生年月日がセルB12に入っていれば、年令を表示しますが、生年月日の記入がない(空欄)と111才と表示されてしまいます。空欄では0才などにしたいのですが、ご教示をお願いします。 セルの西暦・和暦やTODAY関数が影響するのかわかりません。

  • エクセル 入社年月日から、在籍「○年○ヶ月」を出したい

    例えば、A1に 入社年月日 2000年6月 と入力し、DATEDIF関数を利用すると、 =DATEDIF(A1,TODAY(),"Y")では 6年、 =DATEDIF(A1,TODAY(),"M")では 73ヶ月 と表示することができますが、 6年1ヶ月 表示する方法はありますか?

  • エクセルのマクロでの満年齢および経過時間の表示

    はじめまして、初めて質問させていただきます。 私は、社会福祉施設に勤務しているのですが、 入所されている方のデータをユーザーフォームを使って 管理したいと考えています。 ユーザーフォーム自体は以前に作った事があるのですが 日付のデータは扱ったことがありませんでした。 自動で、入所時の年齢、現在の年齢、入所期間を表示させたいと 考えています。 エクセル上では   A         B       C         D      E        F  名前 生年月日  入所年月日 入所時年齢 現在の年齢 入所期間 1 Aさん 2007/02/21 2008/02/21  50歳   51歳   3ヶ月 2 Bさん 2007/02/21 2008/02/21  55歳   62歳   6ヶ月 3 Cさん 2007/02/21 2009/02/21  60歳   73歳   7ヶ月 4 Dさん 2007/02/21 2010/02/21  65歳   84歳   8ヶ月 5 Eさん 2007/02/21 2012/02/21  70歳   90再   9ヶ月 というようなデータになっています。(数字は適当です) マクロでは、datediffを使えば、計算させることはできるのですが 満年齢ではないと、入所した時の年齢などに不整合が生じてしまい ます。(たとえば、月をまたぐと、一日し変わらないのに入所期間が一月分増えているなど。) エクセルの関数ではdatedifを使えて楽なのですが… (datedifを使って上の表を作ることはできます) マクロで扱うやり方がわかりません。 いくつかのサイトで答えらしきものも見たのですが、 ユーザーフォームを作る以上、変数でも処理しなくてはいけないので たとえば Cells(gyou,1) (gyouは行番号をあらわす変数)など このように変数も使って扱うのでさらに混乱しております。 http://okwave.jp/qa2511599.html なども参考にしては見たのですが 長々としたので質問の要旨は 1マクロで満年齢、満経過日数を扱う方法 2その際に、変数を使えるのかrenge("a1")などのセル指定以外の  指定の仕方、cells(1.1)などでも扱えるのか です。 マクロに関しては、初心者なので、なにとぞよろしく御願いします。

  • 年齢の表示を桁合わせする

    今日現在の年齢を表示したときに、”月”を二桁表示にする方法を教えてください。見た目を 〇〇歳〇〇ヶ月と表示したい。   下記のような表です。 式は '=DATEDIF(C5,$A$5,"y")&"歳"&DATEDIF(C5,$A$5,"ym")&"ヶ月" と作りました。  今日    氏名 生年月日   年齢 2014/9/4 aa S25.10.31 63歳10ヶ月       bb S58.8.10  31歳0ヶ月      cc H20.7.20   6歳1ヶ月 ※OKWaveより補足:「富士通FMV」についての質問です。

  • ExcelのDATEDIF関数を使って年齢を出しても正しく表示されません

    今、調査のためにExcel2003の関数を使って、年齢を出す作業をしようとしています。 同じような質問を参照してやってみたのですが、以下のように現れます。 セルD2:「1982/1/1」←生年月日 関数:「=DATEDIF(D2,TODAY(),"Y")」 その結果表示された値:「1900年1月26日」 なぜ年齢が表示されないのかが疑問です。 どうか宜しくお願いします。

  • エクセルで年齢式がコピーできない

    エクセルで名簿を作っています。 最初の一人の生年月日と今日の日付から満年齢を出せたまではいいのですが、全員分の満年齢を出そうとして式をドラッグしてコピーしようとしたところ、#VALUE!と#NUM!が交互に出て、年齢が表示されません。 E2セルに今日の日付(=TODAY())、C4に最初の人の生年月日を入力しています。 最初の人の年齢は=DATEDIF(C4,E2,"Y")の式で正常に表示されているのですが、この式をドラッグでコピーすると、以下、#VALUE!と#NUM!が交互に表示されます。コピーされた式をひとつずつ調べると、 =DATEDIF(C4,E2,"Y") ←正常に表示 =DATEDIF(C5,E3,"Y") ←#VALUE!と表示 =DATEDIF(C6,E4,"Y") ←#NUM!と表示 =DATEDIF(C7,E5,"Y") ←#VALUE!と表示 =DATEDIF(C8,E6,"Y") ←#NUM!と表示 … といった感じで続いていて、要は今日の日付を入力しているE2セルを正しく参照していないようです。これを、 =DATEDIF(C4,E2,"Y")  =DATEDIF(C5,E2,"Y")  =DATEDIF(C6,E2,"Y")  =DATEDIF(C7,E2,"Y")  =DATEDIF(C8,E2,"Y")  のように、常にE2を参照させる方法があるはずだと思うのですが、どうすればいいでしょうか? よろしくお願いします。

  • エクセルで年齢計算したいんですが、教えてください。

    エクセルで作業をしています。 年齢計算を関数を使ってやりたいんですが、わかりません。誕生日などの日にちをシリアル値にしてから計算したいんですが、どんな関数がありますか?どなたか教えてくださいませ。 生年月日を入力し、2008.10.1現在の満年齢を計算する関数です。いい方法ありますでしょうか?

  • エクセルで年齢を

    エクセルで名簿を作成したのですが 生年月日から年齢を引き出す 関数を教えて頂きたいのですが 宜しくお願いします。 生年月日は西暦で入力しています。 (例:1981/01/06) 2003/12/31時点で満何歳を表示したいのですが

  • エクセルの生年月日の入力方法で、0を表示したいのです

    エクセルで生年月日を「S43.05.08」というように「0」を表示して入力したいのですが、どうしたらいいでしょうか?それを使ってDATEDIF関数で年齢を求めたいのです。ぜひお教えください!!お願いします。

専門家に質問してみよう