• ベストアンサー

excel関数 一か月前表示について

図のように、K1にO1表示の一か月前の表示をしたいのですが、 =EDATE(O1,J1)では 20日ではできますが、 O1が2/29の場合、1/31表示になりません。 20日にも、月末にも対応できる関数はありませんか?

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.1

=EDATE(O1+1,J1)-1 でいかがですか。

その他の回答 (3)

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.4

No1No2です。 No1でできたという事はどの月も月末は前月末(4/30の一か月前は3/31)で良いということですね(2月以外は30日の場合には前月30日になるのが正解かと思ったのでNo2を出しました。しかし、今考えてみれば2月を調整するならすべての月末を調整する、ですね) としたら、No1だと5/30の結果が4/29になってしまいますので =IF(O1=EOMONTH(O1,0),EDATE(O1+1,J1)-1,EDATE(O1,J1)) にしてください。

musti
質問者

お礼

本当ですね。ありがとうございます。 混乱していました。 こちらの方がベストアンサーです。

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.3

こんにちは 月末以外は一ヶ月前でいいのでしょうか? 2016/2/27→2016/1/27 2016/2/28→2016/1/28 2016/2/29→2016/1/31 間が空いちゃいますけど? =IF(O1=EOMONTH(O1,0),EOMONTH(EDATE(O1,J1),0),EDATE(O1,J1))

musti
質問者

お礼

ありがとうございます。

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.2

No1です。 No1だと4/30が駄目でした。以下でいかがでしょう。 =IF(MONTH(O1)=2,EDATE(O1+1,J1)-1,EDATE(O1,J1))

musti
質問者

お礼

No1で、出来ました。 早い回答ありがとうございます。

関連するQ&A