• ベストアンサー

エクセルで年月期間を4桁表示したい・続

別名で質問していたのですが、何故かログインできなくなったので改めてこちらで質問させてください(答えてくださった方に返事ができないのが心苦しいですが・・)。 エクセルで着任~退任期間の表を作成しています。 例えばA列が着任でH11.07.01 B列が退任でH13.06.30と入力したら C列に期間(年月)02.00と表示できるようにしたいのです。 ちょうど2年なら2を02.00、1年11ヶ月なら01.11と自動計算するには どういう式を使えばいいのでしょうか? 今までの回答から=datedif(a1,b1,"y")+datedif(a1,b1,"ym")*0.01が一番シンプルな式で4桁表示されるのですが、補足が必要です。 上記例は期間がちょうど2年ですが、01.11と表示されてしまいます。 もし着任がH11.07.10で退任がH13.07.09だと02.00、退任がH13.07.08だと01.11という風に、着任年月日から換算して最後の月が1日でも1ヶ月に満たない場合は0とみなしたいのです。 面倒で申し訳ありませんが、得意な方にご協力いただけたらありがたいです。よろしくお願いいたします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 参考になるかどうか判りませんが・・・ DATEDIF関数は日付が一致して初めて満○○(年・月)となるはずですので、質問に >着任年月日から換算して最後の月が1日でも1ヶ月に満たない場合は0とみなしたいのです。 とありますので、苦肉の策ですが、 着任日の1日前を計算開始日にするか 退任日の1日後を計算最終日に設定してみてはどうでしょうか? せっかく使っていらっしゃる数式がありますので それを利用させていただくと =DATEDIF((A1-1),B1,"y")+DATEDIF((A1-1),B1,"ym")*0.01 もしくは =DATEDIF(A1,(B1+1),"y")+DATEDIF(A1,(B1+1),"ym")*0.01 としてみてはどうでしょう? 以上、参考になれば幸いですが、 的外れなら読み流してくださいね。m(__)m

feedercold
質問者

お礼

早々の丁寧な回答ありがとうございました。無事できました。 「DATEDIF関数は日付が一致して初めて満○○(年・月)となるはず」 色々問題があるとは聞いていましたが、そういう事だったんですね。 勉強になりました。

その他の回答 (2)

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

datedif関数には有名なバグがあります。 http://www.niji.or.jp/home/toru/notes/50.html ですので、お使いになる場合は「計算結果が求める結果と違う」場合も 出てくることを了解のうえで使って下さい。そうでないなら、かなり 面倒な場合分けをするか、VBAで複雑な関数を組むかして下さい。 期間計算はそうでなくても「1/31の1ヶ月後は何月何日?」という問題 があったりして、一筋縄じゃいかないんですよ。

feedercold
質問者

お礼

ご指摘ありがとうございます。DETEDIFが不安定な関数であることは知っていました。だから公式関数に出てないんですよね? 教えていただいたサイトは勉強になりますので時間があるときにじっくりよませていただきます。 今回は日数計算は必要なかったのと、お二人の式が問題なく使えたので採用させていただきました。 また機会がありましたらよろしくお願いいたします。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

退任の日を1日プラスすればよいでしょう。 =DATEDIF(A1,B1+1,"y")+DATEDIF(A1,B1+1,"ym")*0.01

feedercold
質問者

お礼

早々の回答をありがとうございました。無事できました。 計算はあいましたが、表示が2桁になったので焦りましたが 表示形式を変えたら4桁で反映されました。 また機会があればよろしくお願いします。

関連するQ&A

  • エクセルで年月期間を4桁表示したい

    エクセルで着任~退任期間の表を作成しています。 例えばA列が着任項目でH11.07.01、 B列が退任項目でH13.06.30と入れ、 C列に期間(年月)項目、02.00と表示したいのです。 ちょうど2年なら1の位に2で二桁表示02、1年と11ヶ月なら01.11と いう具合に自動計算するにはどういう式を使えばいいのでしょうか? 色々調べてみましたが、DATEDIFで年や月が表示される物しか 見つけられませんでした。よろしくお願いします。 エクセル2003を使用しています。

  • 月の桁をそろえたい

    表のように、0~9の月表示を、00~09に変えたいです。 理由は、見た目、桁がそろって、見やすいからです。 計算式は、 =DATEDIF(A2,TODAY(),"Y") & "年" & DATEDIF(A2,TODAY(),"YM") & "ヶ月" です。 購入品の購入日から、本日までの年月を表示するようにしています。 Office2003です。

  • 期間を求めるエクセル関数について

    期間を求めるエクセル関数について DATEDIF(B14,B16,"Y")&"年"&DATEDIF(B14,B16,"YM")&"ヶ月"という関数で求められる数値に+1にする関数があれば教えて下さい。 例えば、1983年4月~1985年6月の期間を上記の関数で求めると2年2ヶ月(26ヶ月)になるのですが、2年3ヶ月(27ヶ月)としたいのですがどうしたら良いでしょうか? 単純に考えて+1にすればいいので簡単なのかと思ったのですが、なかなか関数が作れませんでした。。。

  • 経過年月の平均を求めたい

    基準日を2008年6月1日とし、 各人、入社後の経過年月をDATEDIF関数で求めました。 式: DATEDIF(H5,$M$3,"Y")&"年"&DATEDIF(H5,$M$3,"YM")&"ヶ月" セルにはX年XXヶ月と表示されます。 ここから、全社員の平均経過年月を出そうとすると、 文字列のため数値を読みません。 次に、 式: DATEDIF(H5,$M$3,"D") セルにはXXXXと、数字のみ表示されます。 で日数表示し、平均経過年月を出すと、1ヶ月多く出てしまいます。 例: 4475日 → 12年3ヶ月のころ、12年4ヶ月と表示されてしまうのです。 というのも、セルの表示形式をユーザー設定「yy"年"mm"ヶ月"」で表示するようにしているからです。 アバウトな数字ではなく、きちんと計算できる何かいい方法はないでしょうか。 宜しくお願いします。

  • Excelで小数点以下1桁の年数を表示したい

    Excelで年数の計算をしています。 A1に1997/10/27,B1に2006/3/28,C1に「=DATEDIF(A1,B1,"Y")&"年"&DATEDIF(A1,B1,"YM")&"ヶ月"」を入力して「8年5ヶ月」と表示されます。 今回,D1に年数を小数点以下1桁で表示したいのですが,うまくいきません。計算すると8.4か8.5年だと思うのですが。 計算式を教えてください。 よろしくお願いします。

  • 加入期間を求めたいのですが ( OO年OOヶ月 と2桁に揃えて)

    B2セルに入会日 C2セルに退会日を入力します。任意のセル(例えばD2)に加入期間を表示したいとします。 DATEDIF関数を試しましたが、一ケタの年数の場合は、一ケタで表示されてしまいます(例 1年6ヶ月) 私が入力した式は以下の通りです。 =DATEDIF(B2,C2,"Y")&"年"&DATEDIF(B2,C2,"YM")&"ヶ月" これを、(例 01年06ヶ月)と表示出来ますか? 上下のセルに大勢入力してあるので、桁がそろわないと見づらいのです。 また、DATEDIF関数の他に、いい関数や方法はあるでしょうか? 求めた期間を元に、「2ヶ月未満」「2ヶ月以上1年未満」「1年以上10年未満」「10年以上」に分類したいと思っています。 DATEDIF関数は初めてなのですが、これで求められた値はテキスト形式だそうですね。 テキスト形式でも、私が求めているような分類が出来るものでしょうか。 それとも、別の方法をしないといけないのでしょうか。 よろしく願いします。

  • エクセルを活用して、ある期間の月数を求めるには?

    よろしくお願いします。 就任の年月日から、退任の年月日の月数を求めるもので 退任の月は、カウントしません。 例えば、 下記のセルのC1に、答えを入れたい。 この求める式を教えて下さい。 先般、教えていただいた DATEDIFで求めようと しているのですが、日付が影響して上手く求めれません。 セルには、必ず、日まで打ち込みますが、求めるのは、 月数だけです。   A1 B1  C1 H8.5.21 H14.9.20 76ヶ月  上記のように76という数値になれば良いのですが。 

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

    今日現在の年齢を表示したときに、”月”を二桁表示にする方法を教えてください。見た目を 〇〇歳〇〇ヶ月と表示したい。   下記のような表です。 式は '=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」についての質問です。

  • エクセルで年月の合計を求める関数を教えてください。

      A列     B列       C列 2000/4/1  2002/3/31   2年 2002/4/1  2004/9/30   2年6ヶ月 2005/4/1  2005/6/30   3ヶ月 として,C列の関数は(=TEXT(DATEDIF(A1,BI,"Y"),"0年;;")&TEXT(DATEDIF(A1,B1,"YM"),"0ヶ月;;")としています。 そこで,C列のみで(空白期間があるので)年月を合計する関数を教えてください。 (上記の例の場合,4年9ヶ月となるように) よろしくお願いします。

  • 重複期間を除いた月数を表示したい

    過去ログを検索しましたが求める回答が見当たらなかった為に質問致します。 Windows2000でExcel2000を使用しております。 以下のようなデータから期間を表示するようにDATEDIF関数を使用しておりますが、重複期間を除いて表示するようにはどのようにすればいいのかわかりません。 お知恵拝借致したくお願い致します。    A       B       C 1 2007/5/1 2008/8/31 15ヶ月 2 2008/6/1 2009/3/31  C1セルには「=DATEDIF(A1,B1,"M")&"月"」の式が入っており、C2セルに表示させる期間は2008/6/1~2008/8/31の3ヶ月を抜いた数値にしたいということです。 判り難い質問の仕方でしたらすみません。

専門家に質問してみよう