• 締切済み

エクセルで一ヵ月以内に○をつける方法

 エクセルで、提出期限と提出日を計算して、1ヵ月以内だと○、一ヵ月以上だとXをつけたいです。  ただ、単純に日数(31日とか)を引くのではなく、月ごとにしたいのです。 例えば、 【提出期限】→【提出日】= 判定   2/29  →  1/29 = ○   2/29  →  1/30 = ○   2/29  →  2/01 = X   4/30  →  3/31 = ○   4/30  →  4/01 = X 何かいい関数はあるでしょうか? よろしくお願いいたします。

みんなの回答

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.4

#02です >これならどうなるんでしょうか? 先の回答を本当に見ていただけましたか? 満月数を求める関数を書いたはずです。満月数が1以上なら「1ヵ月以前」になるだけのことだと思いますが… IF関数の書き方が分からないなら、  =IF(DATEDIF(B1,A1,"M")>=1,"○","×") でよいでしょう。

marilin
質問者

お礼

ありがとうございました。 ・・でも、 2/29→1/30 と 4/30→3/31 がきちんと満月が計算されていて、Xにならないんですよね・・ 変則的なので、関数では無理なのかもしれないです。

  • suz83238
  • ベストアンサー率30% (197/656)
回答No.3

A2に提出期限、B2に提出日として A4に「=IF(DATEDIF(B2,A2,"MD"),"○ ","")」を入れる。 あとはA4をマウスで下まで引っ張ればよし。

marilin
質問者

お礼

ありがとうございました。 色んな方法があるんですね。 でも、2/29→1/30 と 4/30→3/31 がうまくXにならないんですよね・・ 変則的なので、あきらめたほうがいいですかね・・

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

1カ月以上経過しているかを判断するならDATEDIF関数がよいと思います。(「ツール」→「アドイン」→「分析ツール」にチェックが必要) A1に「2/29」、B1に「1/29」をエクセルの日付形式で入力して、C1に =DATEDIF(B1,A1,"M") を入力すれば満月数が表示されます。この場合は「1」が返されます。 従って結果が「0」なら一月以内、「1」以上なら一月以上と判定できます。  =IF(DATEDIF(B1,A1,"M")=0,"○","×") でよいでしょう でも質問に載っている凡例はワケがわかりません。   2/29  →  1/29 = ○   2/29  →  2/01 = X   4/30  →  4/01 = X 判定は逆ではないでしょうか?

marilin
質問者

補足

ごめんなさい。間違えました。 1ヵ月以内 ではなく 1ヵ月以前 でした。 一ヵ月以前に提出すると○にしたいのです。 これならどうなるんでしょうか? 申し訳ありません。また教えてください。

回答No.1

> 2/29  →  2/01 = X > 4/30  →  4/01 = X 常識的にはどうみても1ヵ月以内ですが、×のココロを教えてください。

marilin
質問者

補足

ごめんなさい。間違えました。 一ヵ月以内 ではなく 一ヵ月以前 でした。 申し訳ありません。

関連するQ&A