• ベストアンサー

EXCELでの日付計算(一番簡単な方法)

こんにちは。 EXCELでの一番簡単な日付の計算を教えてください。 知りたいのは例えば起算日から6ヵ月後の日付です。 例えば起算日が6月1日なら6ヶ月後が12月1日となるように したいのですが・・・ 自分で作った式は B2に起算日、B3に6ヶ月後の日付を表示させるとして =YEAR(B2)&"/"&MONTH(B2)+6&"/"&DAY(B2) (2007/12/1)と表示 これよりもっと簡単な方法がありますか? 教えてください。

  • dgc
  • お礼率0% (0/52)

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

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のところ。

dgc
質問者

補足

ご回答ありがとうございます。 これは有給の起算日から6ヵ月後の計算が目的の式です。 おしゃるとうり2007/8/31の6ヶ月後の計算を2008/3/2とするのか 悩んでいます。

その他の回答 (5)

回答No.6

> おしゃるとうり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)
回答No.4

この手の質問の場合、必ず 月末の処理で問題が発生します。 例えば、 8月31日の6ヵ月後が、2月31日がないので、 2月28日が必要なのか 3月1日が必要なのか 3月3日が必要なのか 関数が出来ましたら、上記のような条件になる日付を入れてみて 希望の日数がでるかどうか、確認してください。

  • squip
  • ベストアンサー率16% (2/12)
回答No.3

>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))

dgc
質問者

補足

ご回答ありがとうございます。 確かに2007/7/1は2007/13/1になってしまいますね。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.1

◆簡単かどうかはわかりませんが =DATE(YEAR(B2),MONTH(B2)+6,DAY(B2)) または、 =EDATE(B2,6) ★ただし、EDATE関数は「アドイン関数」です ★ツール→アドインで分析ツールにチェックをしてから使用してください

関連するQ&A

  • エクセルで月末を求める計算式

    エクセルで月末を求める計算式 下記の式ですが、月末の日付が正常に表示されません。 どこか間違いがありましたらご指導お願い致します。 =IF(B3="","",DAY(DATE(YEAR(TODAY()),MONTH(TODAY())+1,0)))

  • 3ヵ月後の日付を自動計算しようと思っているのですが、上手くいかなかった

    3ヵ月後の日付を自動計算しようと思っているのですが、上手くいかなかったのでご質問させていただきます。 3ヵ月後の日付をエクセルで自動的に計算させようと思って、いろいろ試行錯誤しているのですが、上手くいかなかったので、ここに質問させていただきました。よろしくお願いいたします。 で、単純に3ヵ月後を計算させようと思い、ExcelのWorkday関数等を利用して、以下のような式を考えました。 =WORKDAY(DATE(YEAR(A1),MONTH(A1)+3,DAY(A1)-1),1,B1:B38) ここで、セルA1には基準日を入力し、セルB1からB38には国民の祝日を入力しています。 で、これでほとんどの場合で上手くいったんですが、例えば明日8月31日を基準日とした場合、3ヵ月後を、基準日が月末なので3ヵ月後も月末で揃える格好で日付を指定したいと考えており、エクセル関数の組み合わせでとまってしまいました。 つまり8月31日を基準日としたような場合は、求める日付として11月30日(11月30日が土日や祝日の場合は、更にさかのぼって11月29日だったり、11月28日が求める日付)となるようにしたいと考えております。 どなたか、お知恵を拝借できればと思っております。よろしくお願いいたします。

  • Excelで期間の計算の方法が分からなくて困っています。

    Excelの起算日から到達日までのサイクル数を計算するのにあたって、計算方法が分からず困っています。 <内容> 下記の条件で起算日から到達日までのサイクル数を求める。 <条件> ・ 1~15日、16日~末日を各々1サイクルとして計算。 ・ 最初の中途になるサイクル分はカウントしない。 <例>  2008年12月10日(起算日)~2009年2月12日(到達日) 2008年12月10日~2008年12月15日  ・・・・・ カウントせず。 2008年12月16日~2008年12月31日  ・・・・・ 1カウント 2009年 1月 1日~2009年 1月15日  ・・・・・ 1カウント 2009年 1月16日~2009年 1月31日  ・・・・・ 1カウント 2009年 1月 1日~2009年 2月12日  ・・・・・ 1カウント 上記のように計算。 この例の場合、求める値は「4」となる。 私が考えたのは、 If(Day(起算日)<=15,Date(Year(起算日),Month(起算日),16),Date(Year(起算日),Month(起算日)+1,1)) として、カウントしない期間をリセットする。 ここまでは分かるのですが、それ以降、どういう計算方法をしたらいいか思いつきません。 DATEDIF関数が妥当と思うのですが、15日を基点に2つカウントし、到達日が15日を超えるか超えないかでカウント数がかわってきます。 何かいい方法がありますでしょうか。

  • Excel VBAで「date」関数を使いたい

    VBAを使用して年月日を入力してます。 セルに表示だけなら Year & "/" & Month… とかでもいいんですが、その日付で計算を行いたいんです。 何日足す、とか。。 それでExcelで使える Date(Year,Month,Day) を思い出したんですが、VBAではエラーになってしまいました。 Application.WorksheetFunction.Date(Year, Month, Day) や Application.Date(Year, Month, Day) もダメでした。 どのようにしたら入力した日付で計算が行えるでしょうか?

  • 生年月日関係の計算

    エクセルのバージョンは2002です。 2000/01/01のような生年月日のデータから、18年と1ヵ月後(年月のみ)のデータを作ります。 書式を変更するのではなく、新しいセルに打ち込みます。 なお、給与計算月(21日~翌20日)によるため、 たとえば1995/7/25なら2013/9      1995/7/15なら2013/8      1995/11/15なら2013/12            1995/11/25なら2014/1      1995/12/25なら2014/2  というように「給与計算月ベースの18年と1ヵ月後」のデータになるような式を作ります。 この条件で、L83のある生年月日を変換するのに =IF(MONTH(L83)+1=13,YEAR(L83)+19,IF(AND(DAY(L83)>20,MONTH(L83)+2=13),YEAR(L83)+19,YEAR(L83)+18))&"/"&IF(AND(DAY(L83)>20,MONTH(L83)+1=13),2,IF(AND(MONTH(L83)+2=13,DAY(L83)>20),1,IF(DAY(L83)>20,MONTH(L83)+2,IF(MONTH(L83)+1=13,1,MONTH(L83)+1)))) こんな式を強引に作ってうまく適用できたのですが、 もっとうまいやり方は無かったのだろうか・・・と思って質問しました。 やってみると意外に複雑です。 式を単純化できる方いらっしゃいましたら、後学のために教えてください。 よろしくお願いします

  • 日付計算について

    エクセルのEOMONTH関数についてお尋ねします。 例えば、請求日によって締切日を変更する(月が変わる)、 =IF(DAY(A1)>=16,EOMONTH(A1,1),EOMONTH(A1,0)) という数式は、一番ベーシックなものであるかと存じます。 考え方はこれとまったく同じなのですが、求める日付が当月末&翌月末ではないのです。 3ヶ月後の10日&4ヶ月後の10日になるようにしたいのです。 EOMONTH()←この()内で求める値を変化させればよいのでしょうか? だとすれば、どのような形にすれば良いでしょうか? また、EOMONTH関数ではダメということであれば、どのようにすれば求められるのでしょうか。 =DATE(YEAR(S1),MONTH(S1)+1,10) をつかってみたり、色々調べてEOMONTHに辿りついたのですが、 3ヶ月後&4ヶ月後、おまけに月末以外の日付(締日の関係上)という2点で 行き詰ってしまいました。 Excelは2003と2007の2種類のバージョンで利用しております。 どうかよろしくお願い申し上げます。

  • ファイルメーカーPRO 5を使ってます 日付を入力してDayNameJ

    ファイルメーカーPRO 5を使ってます。日付を入力してDayNameJ(日付)で曜日を表示させてます。 所が、日付を変更しても曜日が変わりませんどうしたら変更出来ますか? 後、毎月15日を堺に支払月を変更したいと思って関数を使って計算式を入れているのですが計算が出来ません。 If(Day(日付) <= 15,Date(Year(日付),Month(日付),15),Date(Year(日付),Month(日付)+1,15))と入れてます。 たとえば、日付に2009/06/17と入力すると 支払月が0182/05/07となってしまいます。 どうしてでしょうか? 日付、支払月は日付フィールドになってます。 もう一つすみません。 日付を年、月、日のそれぞれのフィールドに分割したくてそれぞれに  年、Year(日付) 月、month(日付) 日、day(日付)と計算式をいれたのですが、日付フィールドにして、日付書式のカスタムでそれぞれ年、月、日を表示するようにしたら 年、0006 月、01 日、17になっていまいます。日付フィールドをやめて数字フィールドにすると年、2009 月、06 日、17とちゃんと出てきます。 日付フィールドではダメって事でしょうか? 計算式をいれている所は日付をかえても計算し直してくれません。どうしたら良いのでしょうか? いろんな質問をしてすみませんが宜しくお願いします。

  • エクセル 日付関数について

     日付関数について先ほども質問した者ですが、再度よろしくおねがいします。  生年月日から学年(例:小6)を表示する式を組みたく、サイトを検索していたら、下記のような式がありました。 =DATE(YEAR(TODAY())-(MONTH(TODAY())<=3)*1,4,1) これは、今日現在で学年を導く基準年の4月1日を表示する式です。(今日2009/1/4現在ならば2008/4/1と表示する式) この式が理解できません。DATEと後の”,4,1”は理解できます。 YEAR(TODAY())は2009 MONTH(TODAY())は1 (MONTH(TODAY())<=3)の意味は? 多分3月までなら2009-1を表示する? だけど2月になったら2009-2 ではおかしい。 あと*1は構文上必要なのか? 以上雑駁ですが、この式を簡単に説明してくださる方、おねがいします。

  • ファイルメーカー 一ヵ月後の日付をだすには?

    入力日、タイプ:日付に2005/8/5と手動でいれたら、 有効期限(タイプ:日付)に自動で2005/9/5というように、入力日から一ヵ月後の日付を出すにはどのような計算式をいれたらよいのでしょうか? 参考書に載っていた Date(Month(入力日)+ 1 ; Day(入力日); Year(入力日)という式を使うと 2005/08/01 と打ち込むと、2005/9/9 とでてしまいます。 2005/12/30の場合は、2006/1/1と出ます。 どうしたら、よいか教えてください。

  • エクセルの日付計算

    エクセルの日付計算 エクセルの日付計算について教えてください。具体的に言いますと、 3月12日を基本納期として何日早くできたか、何日遅れてしまったがを表示したいのです。たとえば3月12日を基本に3月15日と入力すると「―3日」、3月10日と入力すると「2日」を表示したいのです、「日」の表示は特にいりません、数値だけで良いです。宜しくお願いいたします。

専門家に質問してみよう