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

エクセルで、期限表を作成しております。

A列に月/年(例:2013年5月だと「05/13」と表示させたい)
B列に36か月後の期限(例:「2016年4月」と表示させたい)と何も入力されていない空白セルの場合はは空白セルのままにしたい。

現在の状況は、
A列:表示形式(ユーザー定義:mm/yy)
B列:=EDATE(A1,48-1)
以上のようにしておりますが、下記のような不具合が出てきています。
A列:05/13(2013年5月)は入力できても、05/14(2014年5月)と入力すると自動的に「06/13」となってしまう。
B列:A列は空白セルなのに、なぜか「1903年11月」と入ってしまいます。

どのようにしたらできますでしょうか?
よろしくお願いいたします。

「エクセルで期限の計算をしたい」の質問画像

A 回答 (4件)

「05/13」と入力すると「(2013/)05/13」と認識されます。


つまり、表示されているのは「月/年」ではなく「月/日」です。
表示形式に関わらず、入力はyyyy/ddで入力して下さい。

また、excelでは、1900/1/1を起点(1)として、その何日後か?
として日付を計算します。
従って、空白だと、0と認識され、1900/1/1の前日である、
「1899/12/31から○カ月後」として計算しているのです。

対策についてですが、「= EDATE(A1,48-1)」を「= IF(A1<>"",EDATE(A1,48-1),"")」に変更して下さい。
これで、A列が空白以外の場合のみ、計算するようになります。
※「= EDATE(A1,48-1)」と記載されていますが、「= EDATE(A1,36-1)」ではありませんか?
    • good
    • 0
この回答へのお礼

ありがとうございます!
2014/05と入力するとうまくいきました。
未入力の場合も教えていただいた数式に変更すると空白になりました。
失礼いたしました。
36か月と48か月を混同しておりました。

お礼日時:2013/05/22 14:36

回答No3です。

ご質問の本文では3年後となっていましたので36が使われています。4年後でしたら36が48になりますね。
    • good
    • 0
この回答へのお礼

そうでした。ご指摘ありがとうございます。
文章内で例として挙げたのは36か月でしたが、画像は48か月になっていました。

お礼日時:2013/05/22 14:27

B1セルには次の式を入力して下方にドラッグコピーします。



=IF(A1="","",TEXT(EDATE(A1,36-1),"yyyy年m月"))

あるいは次の式を入力して表示形式をyyyy"年"m"月"とします。

=IF(A1="","",EDATE(A1,36-1))

前者は文字列として扱われますが後者では数値(シリアル値)として扱われます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
未入力の場合、空白になりました!

お礼日時:2013/05/22 14:33

入力する際の誤りだと思います。


「05/14」 → 2013年5月14日と認識されます。
(表示は「06/13」ではなく、「05/13」になると思うのですが)

表示される形式に合わせて入力しても、Excel側は理解してくれません。

A列は空白セルなのに、なぜか「1903年11月」と入ってしまいます。 →
空白セル=0=1900年1月1日の前日(実際には入力不可)と認識されてしまっているため。
    • good
    • 0
この回答へのお礼

ありがとうございます。
ご指摘のとおり月/年と入力したつもりが2013年の月/日と認識されていました。
年/月で入力してみます。

お礼日時:2013/05/22 14:37

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