• ベストアンサー

Excel MONTH(A1+11)はなぜ翌月の月数になるか

Excel2007 21日以降は、翌月の月の数を表示するという計算式をWEBサイトで見つけました。 その式の中に =MONTH(A1+11)がありました。 その式は、例えば A1に 2009/12/20 B1に =MONTH(A1+11)と入れると答は 12 A1に 2009/12/21 と入れると 1 と計算されます。 私の知識では、=MONTH(A1)+1 で翌月しかありませんでした。 なぜ =MONTH(A1+11) で21日以降の日付の場合、翌月の月数が計算されるのですか  

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

  • ベストアンサー
  • akiomyau
  • ベストアンサー率43% (555/1280)
回答No.1

上記の式に欠陥が無いわけではありませんが 式自体の意味としては 21日以降で翌月になるのは1カ月が最大31日にまでしかないので 21日以上では日数に11を足せば32日になるので 翌月になります。 ただし、厳密にいえば30日の月や28日の月もあるのでその場合には 20日でも翌月になってしまいまいます。 確実に21日から翌月にしたいのであれば =IF(DAY(A1)>20,MONTH(A1)+1,MONTH(A1) としたほうがいいと思います。

gyouda1114
質問者

お礼

早速の回答ありがとうございます。 齢70才弱の老爺(じじい)は、応用がきかなくていけません。 =MONTH(A1+11)の括弧内のA1+1の意味が、説明を見てやっと理解できました。 ありがとうございました。 今後ともご指導よろしくお願いします。

その他の回答 (2)

  • j38
  • ベストアンサー率22% (9/40)
回答No.3

2009/12/21 + 11 -> 2009/12/32は無いので -> 2010/01/01 の月を取りだすから、1という意味だと思います。 内部では、1900/01/01を1とした通算日で計算されています。 2009/12/21(40168)+11 -> 2010/01/01(40179)

gyouda1114
質問者

お礼

早速の回答ありがとうございます。 齢70才弱の老爺(じじい)は、応用がきかなくていけません。 =MONTH(A1+11)の括弧内のA1+1の意味が、説明を見てやっと理解できました。 ありがとうございました。 今後ともご指導よろしくお願いします。

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

21日以降は次の月を表示させるのでしたら =MONTH(A1+IF(DAY(A1)>20,11))の式でよいでしょう。この式の意味はA1セルの値、シリアル値に11日を足すのですから例えばA1が21日でしたら11日を足すことになり32日となって、それは1月1日ですから、月の表示は1となりますね。 逆に=MONTH(A1)+1ではA1が2009/12/21のときは表示形式が標準のときでは13となってしまいますね。 正確に次の月を表すのでしたら、 =MONTH(DATE(YEAR(A1),MONTH(A1)+1,DAY(A1)))となります。

gyouda1114
質問者

お礼

早速の回答ありがとうございます。 齢70才弱の老爺(じじい)は、応用がきかなくていけません。 =MONTH(A1+11)の括弧内のA1+1の意味が、説明を見てやっと理解できました。 ありがとうございました。 今後ともご指導よろしくお願いします。

関連するQ&A