- ベストアンサー
EXCELでの日付計算(一番簡単な方法)
こんにちは。 EXCELでの一番簡単な日付の計算を教えてください。 知りたいのは例えば起算日から6ヵ月後の日付です。 例えば起算日が6月1日なら6ヶ月後が12月1日となるように したいのですが・・・ 自分で作った式は B2に起算日、B3に6ヶ月後の日付を表示させるとして =YEAR(B2)&"/"&MONTH(B2)+6&"/"&DAY(B2) (2007/12/1)と表示 これよりもっと簡単な方法がありますか? 教えてください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
6ヵ月後というとき、社会では、 (1)月数に6を足せばよいのか (2)180日後か、 (3)もっと複雑なルールがある のか色々あり、あいまいに言われている場合がある。どれかで難しさが各段に違ってきます。 絶対例外なく(1)でよければ、質問者のやった方法と他に大同小異の既出回答のDATE関数があります。 月末日でよいなら、既出回答のEMONTHがありますが、質問者の言っているのは月中日もある応答日のことでしょう(今日が13日なら、6月先の13日のこと) から使えないのではと思う。 ーー それに既出回答でおっしゃっているように、応答日が大ー>小の月で29-31の場合は大丈夫かのチェックを十分しておけば、完全(安心)でしょう。 ーー 疑問 2007/8/27 2008/2/27 2007/8/28 2008/2/28 2007/8/29 2008/2/29 2007/8/30 2008/3/1 2007/8/31 2008/3/2 2007/9/1 2008/3/1 これでよいか。2007/8/30、2007/8/31のところ。
その他の回答 (5)
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
> おしゃるとうり2007/8/31の6ヶ月後の計算を2008/3/2とするのか 2007/9/1の6ヶ月後が2008/3/1なら、2007/8/31の6ヵ月後のほうが遅いって いうのは社会通念としておかしいでしょう。で、「おっしゃるとうり」では なく「おっしゃるとおり」ですよ。 私ならedate関数とeomonth関数を両方使って、月末を越えないような細工 をします。=min(edate(A1,6),eomonth(A1,6))ってんですけどね。imogasi さんのリストの場合では 2007/8/27 2008/2/27 2007/8/28 2008/2/28 2007/8/29 2008/2/29 2007/8/30 2008/2/29 2007/8/31 2008/2/29 2007/9/01 2008/3/01 となります。
- hallo-2007
- ベストアンサー率41% (888/2115)
この手の質問の場合、必ず 月末の処理で問題が発生します。 例えば、 8月31日の6ヵ月後が、2月31日がないので、 2月28日が必要なのか 3月1日が必要なのか 3月3日が必要なのか 関数が出来ましたら、上記のような条件になる日付を入れてみて 希望の日数がでるかどうか、確認してください。
- squip
- ベストアンサー率16% (2/12)
>B2に起算日、B3に6ヶ月後の日付を表示させるとして >=YEAR(B2)&"/"&MONTH(B2)+6&"/"&DAY(B2) >(2007/12/1)と表示 セル B2 に 2007/7/1 と入力したらどうなりますか? 結果は文字列でなくシリアル値になりますが、正しい日付が返ります。 =DATE(YEAR(B2),MONTH(B2)+6,DAY(B2))
補足
ご回答ありがとうございます。 確かに2007/7/1は2007/13/1になってしまいますね。
- hana-hana3
- ベストアンサー率31% (4940/15541)
- maron--5
- ベストアンサー率36% (321/877)
◆簡単かどうかはわかりませんが =DATE(YEAR(B2),MONTH(B2)+6,DAY(B2)) または、 =EDATE(B2,6) ★ただし、EDATE関数は「アドイン関数」です ★ツール→アドインで分析ツールにチェックをしてから使用してください
補足
ご回答ありがとうございます。 これは有給の起算日から6ヵ月後の計算が目的の式です。 おしゃるとうり2007/8/31の6ヶ月後の計算を2008/3/2とするのか 悩んでいます。