• ベストアンサー

日付関数

日付関数の入力方法が分からないのですが、、 セルA1に“2006/10/26”と入力すると、 A2に3ヶ月前(2006/07/26) A3に1ヶ月前(2006/09/26) A4に1週間前(2006/10/19) A5に3日前 (2006/10/23) と自動的に入力されるようにしたいのです。 どのような関数を入力したらよいでしょうか?

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

  • ベストアンサー
noname#65286
noname#65286
回答No.3

そのものずばりの関数はないようです。 IF関数、WEEKDAY関数と組み合わせると可能です。 #2さんのEDATE関数を使った方が式が短くなります。 #NAMEエラーになる場合は[ツール][アドイン]で[分析ツール]にチェックを入れてください。 3ヶ月前の場合、下記のようになります。 =IF(WEEKDAY(EDATE(A1,-3),2)<6,EDATE(A1,-3),EDATE(A1,-3)-WEEKDAY(EDATE(A1,-3),2)+5) DATE関数を使ったものはもっと式が長くなるので省略 WEEKDAY(EDATE(A1,-3),2) ・・・3ヶ月前の曜日、1:月~7:日の結果が返されます。 WEEKDAY(EDATE(A1,-3),2)とEDATE(A1,-3)が何度も出てくるので別のセルで計算しておくといいです。 例えば AA2に =EDATE(A1,-3)  AB2に =WEEKDAY(AA2,2) を入れておくと =IF(AB2,2)<6,AA2,AA2-AB2+5) とすることができます。

参考URL:
http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/today.htm

その他の回答 (2)

  • cooci
  • ベストアンサー率29% (1394/4779)
回答No.2

3ヶ月前 =EDATE(A1,-3) 1ヶ月前 =EDATE(A1,-1) 1週間前 =A1-7 3日前 =A1-3 これでよいはずです。

kuronekosan2
質問者

お礼

ありがとうございます。 ただ、1ヶ月前(=EDATE(A1,-1)と、3日前(=A1-3)が出来ませんでした。。 私の入力方法がいけないのかもしれません。 ありがとうございました!

kuronekosan2
質問者

補足

間違えました! 3日前は出来たのですが、1ヶ月前が出来ませんでした。。

noname#65286
noname#65286
回答No.1

3ヶ月前は =DATE(YEAR(A1),MONTH(A1)-3,DAY(A1)) 1ヶ月前は =DATE(YEAR(A1),MONTH(A1)-1,DAY(A1)) 1週間前は =A1-7 3日前は =A1-3 です

kuronekosan2
質問者

補足

回答ありがとうございます。 出来ました! もうひとつ質問があるのですが、、 例えば、1ヶ月前や3日前が土日だった場合、 繰り上げて金曜日の日付にするような事(関数)は あるのでしょうか。 稼働日を除く、ということになるのですが。。 何度もすみません。