• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:うるう年の謎教えてください。)

うるう年の謎を解決!日にち計算での課題について

このQ&Aのポイント
  • うるう年の謎について教えてください。日にち計算で、半年-1又は一年-1を求める際に問題が発生しています。特定の日付までの結果がおかしくなってしまいます。解決策を教えてください。
  • 日にち計算で半年-1や一年-1を求める際に問題が発生しています。特に、2011年8月31日までの結果がおかしくなってしまいます。解決方法を教えていただけませんか?
  • うるう年に関する問題があります。日にち計算で半年-1や一年-1を求める際に、特定の日付までの結果が間違っています。どのように修正すれば良いでしょうか?

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

  • ベストアンサー
  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.3

詳しく検証していないけど、 =IF(DATE(YEAR(A1),MONTH(A1)+6,DAY(A1)-1) <EDATE(A1,6),DATE(YEAR(A1),MONTH(A1)+6,DAY(A1)-1),EDATE(A1,6)) でどうだろう。 (edateを使うためには、アドインの分析ツールのチェックを入れておく必要があります。)

tennpi
質問者

お礼

ありがとうございますm(_ _)m 出したかった結果が出てきました。 これで設定して置けば何年先でも問題なしです! 助かりました、本当にありがとうございます。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

「半年後の1日前」というフロー的には全く問題ない結果ですが どういう結果を想定しているのでしょうか? 2011/8/29の半年後=2/29、その一日前=2/28 2011/8/30の半年後=2/30=3/1、その一日前=2/29 2011/8/31の半年後=2/31=3/2、その一日前=3/1 2011/9/1の半年後=3/1、その一日前=2/29 2011/9/2の半年後=3/2、その一日前=3/1

tennpi
質問者

お礼

ありがとうございます。 今表したいのは、 2011/8/29→ 2012.02.28 2011/8/30→ 2012.02.29 2011/8/31→ 2012.03.01→ここの結果を2012.02.29としたい。 2011/9/1→ 2012.02.29 2011/9/2→ 2012.03.01 設定した日にち(365日)に使用出来る関数表示をしたいです。 上記の5日のうちに、結果同じ日が3日あってもよいのですが、8/31と9/1の結果が8/31の方が1日多くなってしまわないようにしたいです。 教えてください。 宜しくお願いします。

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

行っている計算は、 8/31+6月-1日 =2/31-1日=2/30 =3/2(うるう年以外の場合) =3/1(うるう年の場合) ですね。 8/31とうるう年以外の8/30については、独自に定義する必要があります。 2011/8/31 2012/8/31 2012/8/30 などをどのように計算させたいかをまずきめる必要があるということです。

tennpi
質問者

お礼

ありがとうございます。 質問が明確ではなかったですね。 表したいのは、 2011/8/29→ 2012.02.28 2011/8/30→ 2012.02.29 2011/8/31→ 2012.03.01→ここを2012.02.29にしたい。 2011/9/1→ 2012.02.29 2011/9/2→ 2012.03.01 5行中3行目だけ日にちが逆転してしまってるのを防ぐにはどうすれば良いのかです。 方法を教えて頂けませんでしょうか? 宜しくお願いします。