Excel、最も近い水曜日(または日曜日)までに+ 8週間計算する


0

計算する必要があるビジネスプロセスがあります

(TODAY + 8 weeks) to the nearest Sunday or Wednesday.

例えば
- 今日は07/12です。
- 8週間は01/02/18です
- これは木曜日です。過去の最も近い水曜日か日曜日に数えなさい[1]。将来の最も近い水曜日か日曜日に数える[3]
- 計算された日付間のホップ数が最も少ない日を選択します。そこで水曜日31/01/18を選択
- 金曜日でタイがある場合(-2から水曜日、+ 2から日曜日)、日曜日を選択します。

私はExcelに満足しています。 =TODAY()+(8*7) しかし次のステップ is this a Wednesday or Sunday, if not count forward and back until it is both then compare the two values and select the closest 私をはるかに超えています。私はそれがいくらかのVBを必要とすると思いますが、これは私がなじみのあるものではありません(しかし、私はこれをPowerShellで行うことができるでしょう、しかし私はただ慣れないことができません)。

誰でも私を始めさせることができますか?

最終的には結果をWord文書に埋め込もうとしていますが、それは後で行うことができます。

回答:


4

あなたは一日以上戻って行きたくないので(最初に追加された56から) [1] 56を足して2を引き、次に水曜日または日曜日の次の出現箇所を見つけるだけで十分です。

あなたはそれを使ってそれをすることができます WORKDAY.INTL 関数 (Excel 2010以降)このように:

=WORKDAY.INTL(TODAY()+8*7-2,1,"1101110")

WORKDAY.INTL 「営業日」を次のような文字列で定義するようにカスタマイズできます。 "1101110" - 文字列は7です 1/0 月曜日から日曜日までの値。0は稼働日、1は休業日を表します。 "1101110" 水曜日と日曜日を唯一の稼働日として定義します。

古いバージョンのExcelでは、この式でも同じ結果が得られます。

=MIN(TODAY()+8*7+6-WEEKDAY(TODAY()+8*7-{2,5}))


[1] 説明:最も近い日曜日または水曜日がどちらの方向にも2日以上離れることはできず、日付+ 56 =金曜日のときPatrickは彼が日曜日を選びたいと言っています.....したがって日付+ 56が木曜日または月曜日の場合、あなたは1に戻る必要があります。その他の状況では、日付を+ 56に保つか、または先に進みます。


私はあなたが一日以上戻って行きたくないという最初の仮定を得るところに行方不明です。
fixer1234

説明から推測される@ fixer1234 - 最も近い日曜日または水曜日はどちらの方向にも2日以上離れてはいけません。日付+ 56 =金曜日の場合Patrickは日曜日を選びたいと言っています.....木曜日または月曜日の場合は、1に戻る必要があります。その他の状況では、日付を+ 56にしておくか先に進みます......
barry houdini

わかりました。 +1
fixer1234

とんでもない、バリー。
Bandersnatch

2

これはどのように機能しますか?それは将来の最も近い日曜日か水曜日8週を計算するべきです。

それが機能することを確認するには、A2に日付を入れます。参照をA2からに変更できます。 Today() あなたが満足した後それは動作します。

この式をB2に置きます。

=(A2+(8*7)) - CHOOSE(WEEKDAY(A2+(8*7)),0,1,-1,0,1,-2,-1)

結果を確認するには、この式をC2に配置します。

=TEXT(B2,"DDD")

それをテストするには、日付をA2に入れてカレンダーを確認してください。
あなたの平日が日曜日に始まらない場合は、あなたはの状態テストで4を調整することができます IF()


IF関数のFALSE部分だけを使用すれば十分ではないでしょうか。 =A2+(8*7) - CHOOSE(WEEKDAY(A2+(8*7)),0,1,-1,0,1,-2,-1)
barry houdini

@ barry houdini、うん。そうです。
B540Glenn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.