- ベストアンサー
こんな関数ありますか?
A1のセルが 6月3日になっています。 B1には3ヶ月経った9月2日を表示、 C1には3ヶ月経った最初の水曜日9月6日を表示 したいです。 B1とC1に入る数式を教えて下さい。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
B1は =A1+DATE(0,4,0) C1は =IF(WEEKDAY(B1)=4,B1,IF(WEEKDAY(B1+1)=4,B1+1,IF(WEEKDAY(B1+2)=4,B1+2,IF(WEEKDAY(B1+3)=4,B1+3,IF(WEEKDAY(B1+4)=4,B1+4,IF(WEEKDAY(B1+5)=4,B1+5,B1+6)))))) 水曜日はWEEKDAY(日付)が4になります
その他の回答 (5)
- S-Fuji
- ベストアンサー率36% (592/1624)
数ヶ月たったというのはEDATE関数 =EDATA(A1,3)-1 その最初の水曜日 =IF(WEEKDAY(B11)>4,B11+11-WEEKDAY(B11),B11+4-WEEKDAY(B11)) 色々有りますね。
B1: =EDATE(A1,3)-1 C1: =B1-MOD(A1,7)+4+7*(MOD(A1,7)>4)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 3ヶ月経った「片端入れ方式」 =EDATE(A1-1,3) そうでなければ、既に出ているDATE関数で処理します。 註: EDATE は、アドイン:分析ツールが必要です。 「3ヶ月経った」という表現だけでは分かりませんが、EDATEは、一般的な「両端入れ」方式になっているから、-1 を引いています。 3ヶ月経った最初の水曜日 =DATE(YEAR(A1),MONTH(A1)+3,8)-WEEKDAY(DATE(YEAR(A1),MONTH(A1)+3,4))
Excel は操作したことのない門外漢ですがヘルプを手掛かりにチクッと頑張ってみました。 B1=DATE(YEAR(A1),MONTH(A1)+3,DAY(A1)-1) C1=DATE(YEAR(A1),MONTH(A1)+3,4+(D1>5)*7-D1+1) ただし、C1はややこしいのでD1に中間の計算をしています。 D1=WEEKDAY(DATE(YEAR(A1),MONTH(A1)+3,1)) 9/1の曜日を求めて 4又は11の差を加えると水曜日が求まるという考えです。
- mshr1962
- ベストアンサー率39% (7417/18945)
B1=DATE(YEAR(A1),MONTH(A1)+3,DAY(A1)-1) ※ただし月末(30,31)はずれる可能性があります。 C1=DATE(YEAR(A1),MONTH(A1)+3,DAY(A1)-1)+MOD(11-WEEKDAY(DATE(YEAR(A1),MONTH(A1)+3,DAY(A1)-1)),7)
お礼
EDATE関数と言うものがなかったです。回答ありがとうございます。