サムはセルA1に日付があり、セルB1で次の水曜日の日付を計算したいと考えています。彼は計算にどの式を使うべきか疑問に思います。

実際に使用できる数式はたくさんありますが、どれを選択するかはほとんどあなた次第です。使用できる数式の代表的なサンプルを次に示します。

=IF(WEEKDAY(A1)<=4,A1+4-WEEKDAY(A1),A1+11-WEEKDAY(A1))

=A1+WEEKDAY(A1, 1)+CHOOSE(WEEKDAY(A1, 1), 2, 0, -2, -4, 1, -1, -3)

=A1+CHOOSE(WEEKDAY(A1),3,2,1,0,6,5,4)

=A1-MOD(WEEKDAY(A1)-5,7)+6 =A1+MOD(4-WEEKDAY(A1),7)

これらの数式は、セルA1の日付が最初から水曜日でない場合、次の水曜日を表す日付を返します。たとえば、A1の日付が5/26/10(水曜日)の場合、これらはそれぞれ5/26/10を返します。ただし、日付が5/27/10の場合、数式は6/2/10を返します。

開始日が水曜日であっても次の水曜日を返す数式が必要な場合は、別の数式を使用する必要があります。次のいずれかから選択してください:

=A1+IF(WEEKDAY(A1,1)=4,7,IF(WEEKDAY(A1,1)<4,4-WEEKDAY(A1,1),11-WEEKDAY(A1,1)))

=IF(WEEKDAY(A1)<4,A1+4-WEEKDAY(A1),A1+11-WEEKDAY(A1))

=IF(WEEKDAY(A1)=4,A1+7,A1+MOD(4-WEEKDAY(A1),7))

=A1+MOD(4-WEEKDAY(A1),7)+7*(0=MOD(4-WEEKDAY(A1),7))

=A1+7-MOD(4+WEEKDAY(A1,2),7)

=A1+4-WEEKDAY(A1)+IF(WEEKDAY(A1)<4,0,7)

=A1+CHOOSE(WEEKDAY(A1),3,2,1,7,6,5,4)

=A1+(7-MOD(WEEKDAY(A1,3)-2,7))

=A1+4-WEEKDAY(A1)+7*(WEEKDAY(A1)>=4)

=A1-MOD(WEEKDAY(A1)-4,7)+7 =A1+4+((WEEKDAY(A1)>=4)*7)-WEEKDAY(A1)

=A1+MOD(10-WEEKDAY(A1),7)+1 =A1+IF(WEEKDAY(A1) < 4,4,11)-WEEKDAY(A1)

=CEILING(A1-4,7)+4 =A1+6-MOD(A1+2,7)

これらの式の最後の2つは、PCでは問題なく機能しますが、Macでは期待どおりに機能しないことに注意してください。これは、日付のシリアル番号に使用される基準日がMacとPCで異なるため、日付の基になるシリアル番号を操作する計算では、プラットフォームごとに異なる値が返されるためです。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(8625)は、Microsoft Excel 2007および2010に適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。