• ベストアンサー

エクセル YEARFRAC関数 数百年の経過年数

エクセルYEARFRAC関数 =INT(YEARFRAC(C6,TODAY(),1))で経過年数を求める際、121年位までは表示されるのですが、 これを超えると #VALUE! が表示され、経過年数が表示されません。 数百年前までの年数を表示する方法を教えてください。よろしくお願いします。

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

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8023/17148)
回答No.2

=INT(YEAR(TODAY())-LEFT(C6,4)) これで我慢してください。エクセルでは1900/1/1より前の日付は扱えません。また1900/3/1より前の日付では実際より1日だけずれます。 上の例ではC6に日付データに見せかけた文字列を入れることを想定しています。先頭4文字が年を表していることを仮定しています。 また年単位でしか計算しませんので月日は意味を持ちません。

hasegawa-t
質問者

お礼

ありがとうございます。

その他の回答 (2)

  • SI299792
  • ベストアンサー率48% (715/1481)
回答No.3

D2: =IFERROR(INT(YEARFRAC(C2,TODAY(),1)),YEAR(TODAY())-LEFT(C2,FIND("/",C2)-1)-(TEXT(0&MID(C2,FIND("/",C2),5),"MMDD")>TEXT(TODAY(),"MMDD"))) 下へコピペ。

回答No.1

Excelでは、日付データを1900年1月1日を基準とした日数で保存しているため、1900年より前の日付に対して日付関係の関数が使えません。全て自分で処理するしかありません。

関連するQ&A

  • エクセルのYEARFRACで・・・。

    エクセルである期間を計算するためにYEARFRAC関数を用いました。 仮にA1に1999/4/1、B1に2007/4/1と入力し、C1に端数は切り上げた状態で年数を9年(8年と1日なので)と表示させたいのです。 そこでC1に『ROUNDUP((YEARFRAC(A2,B2)),0)』と入力したのですが、8年と表示されてしまいます・・・。 これを9年と表示するにはどうしたらよいのでしょうか? 『ROUNDUP((YEARFRAC(A2,B2))+1,0)』とすれば良いのかと思ったのですが、検証した結果違うみたいで・・・。 分かる方がいらしゃったら教えて下さい!

  • エクセル関数で勤続年数を求めた時の表示

    社員勤続年数を以下のように求めました。 =DATEDIF(A1,TODAY(),"D") 「yy"年"mm"ヵ月"dd"日"」の表示にする。 すると、2年経過した社員など、『1年12ヶ月』と表示されてしまいます。 これを『2年』と表示する方法はないのでしょうか? また、関数自体 =DATEDIF(A1,TODAY()+1,"D") の方が自然なんでしょうか? ご教示ください。よろしくお願いします。

  • エクセルで経過年数の平均

    エクセルで、DATEDIF(A1,B1,"Y")&"年"&DATEDIF(A1,B1,"YM")&"ヶ月"と関数を使い、経過年数&月数を「○年○ヶ月」と計算するデータを作りました。 さらに、計算された経過年数&月数の平均を求めたいのですが上手くいきません。 どうすればいいでしょうか?よろしくお願いします。

  • エクセルでの経過日数計算

    エクセルで経過日数計算に「DATEDIF」関数を使用しています。 「DATEDIF」関数では、経過の年数のみとか日数のみでの表示になりますが、 それを「○年○ケ月と○日」と計算させるにはどのようにすれば 良いのでしょうか?

  • エクセル関数について

    エクセルで =(IF(C9="",INT(H9*J9)),IF(J9=0,INT(H9*C9),""))の関数を入れて計算させた結果#VALUEが表示されたので =IFERROR(IF(C9="",INT(H9*J9)),IF(J9=0,INT(H9*C9),""))に変更したのですが今度はFALSEが表示されました。 FALSEを表示させないためにはどうしたらよいでしょうか。 よろしくお願いします。 ちなみにJ列には別シートからVLOOKUP関数を使用し検索した数値が表示されます。 数値は0の場合もあります。 参考にサンプル表を添付します。

  • Access2007の経過年数を出す関数を教えてください。

    Access2007でフイールドにフイールド名BEGDATEに「yyyy/mm/dd」が書き込んでありもう一つのフイールドにフイールド名ENDDATEに「yyyy/mm/dd」が記録されています。 この「BEGDATEのyyyy/mm/dd」と「ENDDATEのyyyy/mm/dd」の経過年数、月数、日数をたとえば40年5ヶ月10日だとすれば 40.5.10と表示させるにはこれを表示させるボックスのコントロールソースにどのような関数を書いたらよいのでしょうか。 因みにAccess2003時代は=PASSAWAY([BEGDATE],[ENDDATE])と言う簡単な関数で出来ていましたが今これを使うと#NAME?のエラーになってしまいます。

  • エクセル2002の関数

    エクセル2002を利用しているのですが、関数一覧、ヘルプにも、DATEDIF関数が表示がありませんが、なぜ関数一覧、ヘルプに表示が無いのでしょうか、またほかにもこのようになっている関数があるのでしょうか??? 経過年数などのDATEDIF関数を知っていたから良かったですが、知らなければ関数一覧、ヘルプを検索していたでしょう、適当な関数が見当たらなかったでしょう。

  • エクセルDATEDIFで「○歳○○ヶ月」は?

    エクセルで誕生日・入社経過年数表を作りたいのです。現在何歳・入社して何年などは下記の関数でよいと思うのですが, =DATEDIF(N5,TODAY(),"Y") DATEDIF(N5,TODAY(),"M") 「○歳○○ヶ月」「○年○○ヶ月」といったふうに,経過年数と月数が同時に表示することはできないのでしょうか。

  • 経験年数表示○年○ヶ月 式はどのように

    エクセルで経験年数を表示したいのです。 本日で何年何ヶ月経過を示したいです。 Windows XP エクセル2003 使用です。          雇入年月日 セル L12に   H23.2.4          経験年数 セル L13に   1年4ヶ月 としたいのです。 経験年数が半年の場合は L13 に 6ヶ月  ×0年6ヶ月 経験年数が1年の場合は  L13に  1年   ×1年0ヶ月 いまL13の式には =DATEDIF(L12,TODAY(),"Y")&"年"&DATEDIF(L12,TODAY(),"YM")&"ヶ月" と入れてあるのですが。。。 1年0ヶ月 と表示されてまして・・・ 改善式を教えて頂きたいです。 宜しくお願いします。

  • エクセル関数(勤続年数計算)

    経歴書を作成の際、少し込み入った勤続年数を自動計算するエクセル関数を お教え願います。 尚、前提条件として、エクセル(Office2010)を使用で、 (1)例):D7セルに「1993/2/1」と入力し、D8セルに「1994/2/28」とします。     結果表示として、D7セルには「1993(平成5)年2月」、     D8セルには「1994(平成6)年2月」、     E7(E7セルとE8セルが結合)セルには、勤続年数「1年1ヵ月」と表示する関数 (2)例):D7セルに「2003/4/1」と入力し、D8セルに「2003/5/31」とします。     結果表示として、D7セルには「2003(平成15)年4月」、     D8セルには「2003(平成15)年5月」、     E7(E7セルとE8セルが結合)セルには、勤続年数「2ヵ月」と表示する関数     決して、「0年2ヵ月」と表示はしない (3)例):D7セルに「2003/4/1」と入力し、D8セルに「2004/3/31」とします。     結果表示として、D7セルには「2003(平成15)年4月」、     D8セルには「2004(平成16)年3月」、     E7(E7セルとE8セルが結合)セルには、勤続年数「1年0ヵ月」と表示する関数     決して、「0年12ヵ月」と表示はしない (4)例):D7セルに「1993/2/1」と入力し、D8セルに「1995/1/31」とします。     結果表示として、D7セルには「1993(平成5)年2月」、     D8セルには「1995(平成7)年1月」、     E7(E7セルとE8セルが結合)セルには、勤続年数「2年0ヵ月」と表示する関数     決して、「1年12ヵ月」と表示はしない ※上記の(1)~(4)を統合したエクセル関数を是非、ご教示願います。   物理的に困難な場合は、日付入力するD7、D8の箇所を変更しても構いません。 何方かこの手でお詳しい方、よろしくお願い致します。

専門家に質問してみよう