ニコールは、契約に取り組んだ週数を数える必要があります。契約開始日(セルA1)は11月15日で、セルC1に第1週として表示されます。したがって、11月22日がロールバックすると、2週目になります。セルB1に契約完了日を入力すると、セルC1はA1とB1の間の週数を反映し、示されているように切り上げられます。ニコールは、契約週の正しい数を決定するのに役立つ関数または式があるかどうか疑問に思います。

契約週を決定するために使用できる式はいくつもあります。ただし、使用する数式はセルB1をチェックする必要があり、セルB1が空白の場合(契約が終了していないことを意味します)、今日の日付に基づいて計算を行うことができます。チェックを実行し、適切な契約週を返す式は次のとおりです。

=IF(ISBLANK(B1),ROUNDUP((TODAY()-A1)/7,0),ROUNDUP((B1-A1)/7,0))

次のように、IF関数をROUNDUP関数内に配置すると、式を短縮できます。

=ROUNDUP((IF(ISBLANK(B1),TODAY(),B1)-A1)/7,0)

もちろん、計算に今日の日付を使用せず、代わりに契約がまだ開いていることを示したい場合は、最初の式のこのバリエーションに戻ることができます。

=IF(ISBLANK(B1),"Contract Open",ROUNDUP((B1-A1)/7,0))

これまでのところ、これらの数式の例はすべて、1週間の境界を適切に処理できない可能性があります。たとえば、契約の開始が11月15日で、契約の終了が11月22日の場合、数式は1を返します。

ただし、2を返すようにしたい場合があります。つまり、契約は11月22日に終了したため、常にその日を2週目に考慮する必要があります。その場合は、次のように、数式のいずれかに1を追加するだけです。

=ROUNDUP((IF(ISBLANK(B1),TODAY(),B1)-A1+1)/7,0)

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

このヒント(13592)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。