アプリ版:「スタンプのみでお礼する」機能のリリースについて

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日以降の日付の場合、翌月の月数が計算されるのですか

 

「Excel MONTH(A1+11)はな」の質問画像

A 回答 (3件)

上記の式に欠陥が無いわけではありませんが


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

早速の回答ありがとうございます。
齢70才弱の老爺(じじい)は、応用がきかなくていけません。

=MONTH(A1+11)の括弧内のA1+1の意味が、説明を見てやっと理解できました。
ありがとうございました。

今後ともご指導よろしくお願いします。

お礼日時:2009/11/18 08:34

2009/12/21 + 11 -> 2009/12/32は無いので -> 2010/01/01


の月を取りだすから、1という意味だと思います。

内部では、1900/01/01を1とした通算日で計算されています。
2009/12/21(40168)+11 -> 2010/01/01(40179)
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
齢70才弱の老爺(じじい)は、応用がきかなくていけません。

=MONTH(A1+11)の括弧内のA1+1の意味が、説明を見てやっと理解できました。
ありがとうございました。

今後ともご指導よろしくお願いします。

お礼日時:2009/11/18 08:35

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)))となります。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
齢70才弱の老爺(じじい)は、応用がきかなくていけません。

=MONTH(A1+11)の括弧内のA1+1の意味が、説明を見てやっと理解できました。
ありがとうございました。

今後ともご指導よろしくお願いします。

お礼日時:2009/11/18 08:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています